Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Че не так?
Форумы портала PHP.SU » Разное » Корзина » Че не так?

Страниц (1): [1]
 

1. Novocaine - 09 Декабря, 2007 - 01:33:33 - перейти к сообщению
кодировка утф-8 без сигнатуры...скрипт выводит результаты мини столбцами на исходном изображении, данные о величине столбцов берет из массива...Массив заполняется данными в результате мини мат. операций...Все данные берутся из БД. функции типа QueryCount и QueryArray эквивалентны mysql_query(); mysql_num_rows(); и mysql_query(); mysql_fetch_array(); соответственно. Скрипт не желает генерировать имачж...При не контролируемом выводе(ob_start и т.д.) вылетают кракозяблы. Причем убрав все кроме функции генерации имачжа, скрипт работает со статическим массивом, инициализированным раннее юзером...
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. function CreateImage($perc)
  4. {
  5. $img = imageCreateFromGIF("graf2.gif");
  6.  
  7. $color = imageColorAllocate($img, 44,191,228);
  8.  
  9. $x1 = 1;
  10. $x2 = 5;
  11. for($i=0;$i<count($perc);$i++)
  12. {
  13.         $y1=floor(100-$perc[$i]);
  14.         imageFilledRectangle($img,$x1,$y1,$x2,100,$color);
  15.         $x1=$x1+6;
  16.         $x2=$x2+6;
  17. }
  18. Header("Content-type: image/gif");
  19. ImageGIF($img);
  20. }
  21. require("functions.php");
  22. require("config.php");
  23. SqlConnect();
  24. $id=CheckVar($id,0);
  25. if(empty($id))exit;
  26. $check=QueryCount("sites","`id`=$id && `in`>$config_number && `status`=0");
  27. if($check==0)exit;
  28. $nowdate=date("d.m");
  29. $count1=QueryCount("counter","site=$id && `date`=$nowdate");
  30. $query=@mysql_query("select DISTINCT hour from counter where `site`=$id && `date`=$nowdate");
  31. $i=0;
  32. while($arra=@mysql_fetch_array($query))
  33. {
  34.         $cntr=QueryCount("counter","`site`='$id' && `date`='$nowdate' && `hour`=$arra[hour]");
  35.         $percs=floor($cntr*100/$count1);
  36.         $perc[$i]=$percs;
  37.         $i=$i+1;
  38. }
  39. CreateImage($perc);
  40. ?>
  41.  
2. evgenijj - 09 Декабря, 2007 - 15:06:15 - перейти к сообщению
Я не знаю, с какой БД ты работаешь, но вот этот запрос вызывает серьезные сомнения
SELECT DISTINCT hour FROM counter where `site`=5 && `date`=09.12
Он просто ничего не возвращает, и при попытке обращения к неопределенной переменной $perc выдается предупреждение об ошибке.
3. Novocaine - 09 Декабря, 2007 - 16:05:47 - перейти к сообщению
date- строковая, поэтому у меня возвращает данные отсортированные DISTINCTом. $perc не думаю что надо инициализировать...или х.з $perc=array(); имеешь ввиду?\n\n(Добавление)
require("functions.php");
require("config.php");
SqlConnect();
$id=CheckVar($id,0);
if(empty($id))exit;
$check=QueryCount("sites","`id`=$id && `in`>$config_number && `status`=0");
if($check==0)exit;
$nowdate=date("d.m");
$count1=QueryCount("counter","site=$id && `date`=$nowdate");
$query=@mysql_query("select DISTINCT hour from counter where `site`=$id && `date`=$nowdate");
$i=0;
while($arra=@mysql_fetch_array($query))
{
$cntr=QueryCount("counter","`site`='$id' && `date`='$nowdate' && `hour`=$arra[hour]");
$percs=floor($cntr*100/$count1);
$perc[$i]=$percs;
$i=$i+1;
}---- вот эта часть у меня исправно возвращает массив. Проверял путем print "$perc[$i]<br/>"; Но! данный массив упорно не желает принять остальная часть кода.Огорчение\n\n(Добавление)
Возможно запрос на сортировку только уникальных данных неверный, но он у меня возващает данные
4. valenok - 09 Декабря, 2007 - 16:34:01 - перейти к сообщению
Novocaine пишет:
Проверял путем print "$perc[$i]< br/>";

прикольно. А дальше проверяли?

http://phpfaq[dot]ru/debug
5. Novocaine - 09 Декабря, 2007 - 17:36:36 - перейти к сообщению
valenok пишет:
Novocaine пишет:
Проверял путем print "$perc[$i]< br/>";

прикольно. А дальше проверяли?

http://phpfaq[dot]ru/debug


мдяя...издеваешься? Ну ладно...всем ОГРОМНОЕ спасибо...Думал тут хоть есть люди которые умеют что то, оказалось не так
6. evgenijj - 09 Декабря, 2007 - 18:46:41 - перейти к сообщению
Novocaine пишет:
...Думал тут хоть есть люди которые умеют что то, оказалось не так

Не в коня корм...

SELECT DISTINCT hour FROM counter WHERE `site`=5 && DATE_FORMAT( date, '%d.%m' ) = '09.12';
Убирай вот эту фигню
$query=@mysql_query(...);
$arra=@mysql_fetch_array($query)
В php.ini выставляем
display_errors=On
error_reporting=E_ALL
И действуй в соответствии с инструкциями
http://phpfaq[dot]ru/debug
7. valenok - 09 Декабря, 2007 - 23:29:30 - перейти к сообщению
Цитата:
Думал тут хоть есть люди которые умеют что то, оказалось не так

Да действительно оказалось не так, но всё же пора начинать Думать.
Прочтите документ по ссылке данной вам дважды.
p.s. не хотите - не читайте.
8. Novocaine - 10 Декабря, 2007 - 01:19:23 - перейти к сообщению
evgenijj пишет:
Novocaine пишет:
...Думал тут хоть есть люди которые умеют что то, оказалось не так

Не в коня корм...

SELECT DISTINCT hour FROM counter WHERE `site`=5 && DATE_FORMAT( date, '%d.%m' ) = '09.12';
Убирай вот эту фигню
$query=@mysql_query(...);
$arra=@mysql_fetch_array($query)
В php.ini выставляем
display_errors=On
error_reporting=E_ALL
И действуй в соответствии с инструкциями
http://phpfaq.ru/debug

Слуш ну че (солнышко)? Говорю для особо непонятливых...date - у меня столбецц...типа text и никакие функции времени и даты с ним не связаны...Это просто строка! string ...Ошибка в семантике, вы ее вижу в упор не видите, значит буду сам додумывать

 

Powered by ExBB FM 1.0 RC1