За последние 24 часа нас посетили 18838 программистов и 1702 робота. Сейчас ищут 723 программиста ...

Графическое отображение данных

Тема в разделе "Прочие вопросы по PHP", создана пользователем KOLBASA, 12 май 2013.

  1. KOLBASA

    KOLBASA Новичок

    С нами с:
    12 май 2013
    Сообщения:
    17
    Симпатии:
    0
    Пытаюсь сделать графическое отображение информации на сайте.
    Переменным присвоены значения, теперь их необходимо отобразить в виде двух прямоугольников: один под другим. Длина прямоугольника равна значению переменной, в пикселях.
    Код написал, но что-то он не работает...
    Переменные ТОЧНО имеют некоторые значения, их я выводил отдельной командой.
    Подскажите, пожалуйста, что можно изменить в тексте кода или предложите другое решение для этой задачи?
    Код (Text):
    1.  
    2. <?php
    3. include ("bd.php");
    4. $querynechet=mysql_query("SELECT SUM(nechet) FROM users3",$db);
    5. $sumnechet=mysql_result($querynechet,0);
    6. $querychet=mysql_query("SELECT SUM(chet) FROM users3",$db);
    7. $sumchet=mysql_result($querychet,0);
    8.  
    9. $all=$sumnechet+$sumchet;
    10. $chpr=round(($sumchet/$all)*100);
    11. $nchpr=round(($sumnechet/$all)*100);
    12.  
    13. header ("Content-type: image/png");
    14. $col1 = imagecolorallocate ($imch, 255, 0, 0);  
    15. $col2 = imagecolorallocate ($imnch, 50, 0, 0);
    16. imagefilledrectangle ($imch, 0, 0, $chpr, 20, $col1);
    17. imagefilledrectangle ($imnch, 0, 30, $nchpr, 20, $col2);
    18.     imagepng ($imch);
    19.     imagepng ($imnch);  
    20. ?>
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну очевидно же - вы выводите две картинки в одном ответе.
    кстати, можно обойтись одним запросом к БД.
     
  3. KOLBASA

    KOLBASA Новичок

    С нами с:
    12 май 2013
    Сообщения:
    17
    Симпатии:
    0
    А как запихать 2 прямоугольника в одну картинку? Я не совсем ещё понял принцип построения этих динамических изображений...
     
  4. PCSpeaker

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

    С нами с:
    26 дек 2007
    Сообщения:
    84
    Симпатии:
    0
    Нужно слить 2 картинки в одну. Может какой-нибудь imagecopymerge подойдет? Если нет, то поищите другие варианты по запросу image merge php

    Добавлено спустя 4 минуты 9 секунд:
    А вообще разве нельзя сразу в одной картинке рисовать?
    Ну типа такого:
    Код (Text):
    1.  
    2. $col = imagecolorallocate ($imch, 255, 0, 0);
    3. imagefilledrectangle ($imch, 0, 0, $chpr, 20, $col);
    4. $col = imagecolorallocate ($imch, 50, 0, 0);
    5. imagefilledrectangle ($imch, 0, 30, $nchpr, 20, $col);
    6. imagepng ($imch);
    7.  
     
  5. KOLBASA

    KOLBASA Новичок

    С нами с:
    12 май 2013
    Сообщения:
    17
    Симпатии:
    0
    PCSpeaker, спасибо за ответ, но изображение не строится даже если сменить координаты на конкретные цифры (((
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а чо пишет? гд-то подключен?
     
  7. KOLBASA

    KOLBASA Новичок

    С нами с:
    12 май 2013
    Сообщения:
    17
    Симпатии:
    0
    На странице отображается значок изображения и всё... Видимо, из-за наличия "header ("Content-type: image/png");" в коде. Само изображение не строится.
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну честно мне не интересно как это на экране выглядит. я про журнал спрашивал
     
  9. KOLBASA

    KOLBASA Новичок

    С нами с:
    12 май 2013
    Сообщения:
    17
    Симпатии:
    0
    В информации о хостинге нет ни строчки про ГД. (если Вы этот журнал имели в виду)

    Добавлено спустя 5 минут 55 секунд:
    Вот такой простенький код выполняется, следует полагать, что ГД подключен...
    Код (Text):
    1. <?php
    2.  
    3.     header ("Content-type: image/png");  
    4.     $im = ImageCreate (200, 100);          
    5.     $col = ImageColorAllocate ($im, 255, 50, 100);  
    6.     ImagePng ($im);  
    7. ?>
    Добавлено спустя 6 минут 28 секунд:
    А если в код, написанный выше добавить данные из базы данных и подставить в размеры прямоугольника переменные, то код уже не выполняется. Что за чертовщина-то?
    Код (Text):
    1. <?php
    2. include ("bd.php");
    3. $querynechet=mysql_query("SELECT SUM(nechet) FROM users3",$db);
    4. $sumnechet=mysql_result($querynechet,0);
    5. $querychet=mysql_query("SELECT SUM(chet) FROM users3",$db);
    6. $sumchet=mysql_result($querychet,0);
    7.  
    8. $all=$sumnechet+$sumchet;
    9. $chpr=round(($sumchet/$all)*100);
    10. $nchpr=round(($sumnechet/$all)*100);
    11.  
    12. header ("Content-type: image/png");  
    13.     $im = ImageCreate ($chpr, $nchpr)  ;        
    14.     $col = ImageColorAllocate ($im, 255, 0, 0);  
    15.     ImagePng ($im);    
    16. ?>
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    если в простом виде код выполняется и показывается нужная картинка то гд подключен, ок. но журнальчик-то блин прочитайте - то что не выполняется другой код свидетельствует о наличии косяка и он как-бы обязан быть журналирован так как это дев а не прод.
     
  11. KOLBASA

    KOLBASA Новичок

    С нами с:
    12 май 2013
    Сообщения:
    17
    Симпатии:
    0
    Ganzal, о каком журнале Вы всё время упоминаете, и что такое "дев" и "прод"?
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    журнальчик ошибочек.
    дев это development - режим разработки когда журнальчики должны быть перенасыщены данными для быстрой отладки. а прод это production - это уже боевое использование приложения, при котором журналирование минимально или отключено совсем.

    вы в форуме программирования значит знаний у вас уже достаточно. если это не так - не стесняйтесь создавать темы в форумах для новичков (если вы верите в свои силы) или блондинок (если не боитесь в этом признаться)
     
  13. KOLBASA

    KOLBASA Новичок

    С нами с:
    12 май 2013
    Сообщения:
    17
    Симпатии:
    0
    Нет, в своих силах я не уверен. php профессионально не занимаюсь. Я , действительно, чайник, признаюсь в этом открыто и без боязни ))) Впервые на этом сайте. Создал тему в этом форуме потому что название форума говорит само за себя: "ПРОГРАММИРОВАНИЕ", значит тут обсуждаются вопросы, связанные с программированием. Сейчас продублирую этот вопрос в форуме для новичков, может там помогут...