За последние 24 часа нас посетили 15159 программистов и 1672 робота. Сейчас ищут 824 программиста ...

Помогите пожалуйста разобраться с pChart

Тема в разделе "JavaScript и AJAX", создана пользователем Димон, 23 мар 2011.

  1. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Есть следующие запросы выводящие некоторые данные:
    Код (Text):
    1.  
    2. $sql = "SELECT * FROM `zakaz`";
    3. $result = mysql_query($sql)or die ("Query failed: " .mysql_error());
    4. $num_rows = mysql_num_rows($result);
    5.  echo " Всего произведено заказов $num_rows\n<br>";
    6. $sql2 = "SELECT * FROM `rabota`WHERE sost_id =1";
    7. $result2 = mysql_query($sql2)or die ("Query failed: " .mysql_error());
    8. $num_rows2 = mysql_num_rows($result2);
    9.  echo " Из них выполнено $num_rows2\n<br>";
    10. $sql3 = "SELECT * FROM `rabota`WHERE sost_id =0";
    11. $result3 = mysql_query($sql3)or die ("Query failed: " .mysql_error());
    12. $num_rows3 = mysql_num_rows($result3);
    13.  echo " Из них в работе $num_rows3\n<br>";
    14. $sql4 = "SELECT * FROM `rabota`WHERE sost_id =2";
    15. $result4 = mysql_query($sql4)or die ("Query failed: " .mysql_error());
    16. $num_rows4 = mysql_num_rows($result4);
    17.  echo " Из них отказано $num_rows4\n<br>";  
    Есть также папка pChart, со всем ее содержимым.
    Вопрос, как мне прикрутить эту папку к денверу и создать круговую диаграмму.
    Как ни пытался, не получается.
    Пожалуйста, ну очень интересно, как это работает.
     
  2. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Весь инет перерыл, но ничего так и не нашел по pChart, может кто знает как построить данную диаграмму другим способом? Только мне интересен не просто рисунок а динамическая диаграмма, связанная с постоянно меняющимися данными.
    Будьте добры подскажите пожалуйста, но только не простой ссылкой гугл, там многое друг у друга поскачивают, не удосужась даже в работе скриптов.
    Перепробовал несколько способов, на всех сервер ругается на эту строку:
    Код (Text):
    1. Header ('Content-type: image/png',true);
    Говорит что заголовки уже посылались. Может это проблема ДЕНВЕРА?
     
  3. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Блин, неужели никто не работал с данной библиотекой?
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    это точно не проблема денвера. если говорит, что уже посылались, значит должен сказать и где они посылались до этого - нужно пойти туда и убрать оттуда все переносы строк, пробелы, БОМ и прочее, выводящееся браузеру
     
  5. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Выдает в браузере:Warning: Cannot modify header information - headers already sent by (output started at z:\home\stopauto.kz\www\office\office_blocks\blocks1.php:9)
    А вот эта строка:
    Код (Text):
    1. <table width="100%" cellpadding="0" cellspacing="0" bordercolor="#2A3F00">
    В чем здесь ошибка? Убрать лишние (пустые) атрибуты?
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Димон
    хм... генерируешь изображение в текстовом потоке? и удивляешься почему это не работает?
     
  7. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Gromo
    В первом сообщении я показал запросы и вывел результаты в текстовом формате для наглядности (временно, что бы знать, что результат выводится правильно.
    Вопрос в том, что я вообще не могу на странице создать графику. Ругается на заголовки, что они уже посылались.
     
  8. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Вот полный текст ошибки:
    Warning: Cannot modify header information - headers already sent by (output started at z:\home\stopauto.kz\www\office\office_blocks\blocks1.php:9) in z:\home\stopauto.kz\www\office\statistika.php on line 32
    Строка №9 выглядет уже вот так:
    Код (Text):
    1. <table width="100%">
    Строка № 32 вот так:
    Код (Text):
    1. header("Content-type: image/png"); $img=ImageCreate(500,200);
     
  9. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    генерирует изображение, ссылку на которое нужно вставлять в хтмл код <img src="/path/to/pchart_with_params">
     
  10. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Gromo
    Я страницу разбил на две части, т.е.: в первую часть я сохранил начало страницы до вывода контента, а во вторую чать я сохранил все, что после контента.
    Может мешать созданию графики то, что отрытие тэгов находится в первом подключаемом файле, а закрытие их во втором?
     
  11. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Вот набросок, который пытаюсь отобразить на странице:
    Код (Text):
    1. <?php $goods[0]=30; $goods[1]=50; $goods[2]=100; $goods[3]=70;
    2.     $sum=0; foreach($goods as $a) {$sum=$sum+$a;} $count=count($goods)-1; for($i=0;$i<=$count;$i++) {$part[$i]=round($goods[$i]/$sum*500,0);}
    3.     $max=max($goods); for($j=0;$j<=$count;$j++) {$column[$j]=round($goods[$j]/$max*100,0);}
    4.     $img=ImageCreate(500,200);#Здесь создается заголовок png-файла и основа рисунка.
    5.     $white=ImageColorAllocate($img,255,255,255); $red=ImageColorAllocate($img,255,0,0); $green=ImageColorAllocate($img,0,255,0); $blue=ImageColorAllocate($img,0,0,255); $gray=ImageColorAllocate($img,128,128,128); #Здесь определяются цвета. Разумеется, их может быть больше (и меньше).
    6.     $color=array($red,$green,$blue,$gray); #Здесь создаем массив цветов - красный, зеленый, синий и черный.
    7.     $x1=0;$x2=0; for($i=0;$i<=$count;$i++) { $x2=$x1+$part[$i]; ImageFilledRectangle($img,$x1,20,$x2,80,$color[$i]); $x1=$x2; }
    8.     $x=0; $y=0; $width=50; for($j=0;$j<=$count;$j++) { $y=199-$column[$j]; ImageFilledRectangle($img,$x,$y,$x+$width,199,$color[$j]); $x=$x+$width; }
    9.     ImagePNG($img);
    10.     ?>
    У меня рисует абракадабру в текстовом формате:
    Код (Text):
    1. ‰PNG  ��� IHDR��ф���И���м7Ы���PLTEяяяя���я���яЂЂЂЁbi���эIDATxњнЬA Ђ0EA,`$аЂM(Ђ¤IKЫП<;ЧНf—E’$I’$IR—ЦЧ¶вЋєЄ„ЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЋЮњ.I’$I’¤9{ЬнЅ'k:::zxиииибЎЈЈЈ‡‡ЋЋЋ:::zxиии?§?ЭџЅG®:::::::z@ииииииииеУЛq ЈЈЈO::::::::::ъ\ЎЈ'ТЛїзўЈЈЈЈЈЈЈ::::::::::::::ъxЎЈЈЈЈ‡Тoљ№я Е5Н����IEND®B`‚
    В чем проблема?
     
  12. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    посмотрите первые четыре символа. это не то, что вы хотите создать?
     
  13. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Не понял вопроса
     
  14. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    как раз для этого и нужны заголовки, что это изображение пнг, а то браузер воспринимает как текст.
    вообще, задача решается разделением вывода хтмл и изображения. в хтмл даётся ссылка на пхп скрипт, генерирующий изображение
     
  15. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Gromo
    Просто вынести файл в отдельный блок и подключить его (include)?
     
  16. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    нет. делать отдельный запрос к апачу для получения изображения, генерируемого pChart
     
  17. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Не получается, перепробовал уже сто раз наверное. У Вас нет рабочего примера?
     
  18. Димон

    Димон Активный пользователь

    С нами с:
    12 май 2009
    Сообщения:
    152
    Симпатии:
    0
    Уррррраааа, заработала!!!! Получилось, но только с помощью jQ и плагина jqPlot.
    Думаю, что тему можно закрыть. Буду дальше разбираться с плагином.