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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Че не так?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Делаю мини диаграмму на пыхе
Novocaine
Отправлено: 09 Декабря, 2007 - 01:33:33
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Дек. 2007  
Откуда: 5горск


Помог: 0 раз(а)

[+]


кодировка утф-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.  


-----
Пользователь заблокирован за оскорбление модераторов форума.
 
 Top
evgenijj
Отправлено: 09 Декабря, 2007 - 15:06:15
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




Я не знаю, с какой БД ты работаешь, но вот этот запрос вызывает серьезные сомнения
SELECT DISTINCT hour FROM counter where `site`=5 && `date`=09.12
Он просто ничего не возвращает, и при попытке обращения к неопределенной переменной $perc выдается предупреждение об ошибке.
 
 Top
Novocaine
Отправлено: 09 Декабря, 2007 - 16:05:47
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Дек. 2007  
Откуда: 5горск


Помог: 0 раз(а)

[+]


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(Добавление)
Возможно запрос на сортировку только уникальных данных неверный, но он у меня возващает данные


-----
Пользователь заблокирован за оскорбление модераторов форума.
 
 Top
valenok
Отправлено: 09 Декабря, 2007 - 16:34:01
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Novocaine пишет:
Проверял путем print "$perc[$i]< br/>";

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

http://phpfaq[dot]ru/debug


-----
Truly yours, Sasha.
 
My status
 Top
Novocaine
Отправлено: 09 Декабря, 2007 - 17:36:36
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Дек. 2007  
Откуда: 5горск


Помог: 0 раз(а)

[+]


valenok пишет:
Novocaine пишет:
Проверял путем print "$perc[$i]< br/>";

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

http://phpfaq[dot]ru/debug


мдяя...издеваешься? Ну ладно...всем ОГРОМНОЕ спасибо...Думал тут хоть есть люди которые умеют что то, оказалось не так


-----
Пользователь заблокирован за оскорбление модераторов форума.
 
 Top
evgenijj
Отправлено: 09 Декабря, 2007 - 18:46:41
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




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
 
 Top
valenok
Отправлено: 09 Декабря, 2007 - 23:29:30
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Цитата:
Думал тут хоть есть люди которые умеют что то, оказалось не так

Да действительно оказалось не так, но всё же пора начинать Думать.
Прочтите документ по ссылке данной вам дважды.
p.s. не хотите - не читайте.


-----
Truly yours, Sasha.
 
My status
 Top
Novocaine
Отправлено: 10 Декабря, 2007 - 01:19:23
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Дек. 2007  
Откуда: 5горск


Помог: 0 раз(а)

[+]


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 ...Ошибка в семантике, вы ее вижу в упор не видите, значит буду сам додумывать
Тема закрыта!


-----
Пользователь заблокирован за оскорбление модераторов форума.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Корзина »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB