Пытаюсь сделать графическое отображение информации на сайте. Переменным присвоены значения, теперь их необходимо отобразить в виде двух прямоугольников: один под другим. Длина прямоугольника равна значению переменной, в пикселях. Код написал, но что-то он не работает... Переменные ТОЧНО имеют некоторые значения, их я выводил отдельной командой. Подскажите, пожалуйста, что можно изменить в тексте кода или предложите другое решение для этой задачи? Код (Text): <?php include ("bd.php"); $querynechet=mysql_query("SELECT SUM(nechet) FROM users3",$db); $sumnechet=mysql_result($querynechet,0); $querychet=mysql_query("SELECT SUM(chet) FROM users3",$db); $sumchet=mysql_result($querychet,0); $all=$sumnechet+$sumchet; $chpr=round(($sumchet/$all)*100); $nchpr=round(($sumnechet/$all)*100); header ("Content-type: image/png"); $col1 = imagecolorallocate ($imch, 255, 0, 0); $col2 = imagecolorallocate ($imnch, 50, 0, 0); imagefilledrectangle ($imch, 0, 0, $chpr, 20, $col1); imagefilledrectangle ($imnch, 0, 30, $nchpr, 20, $col2); imagepng ($imch); imagepng ($imnch); ?>
ну очевидно же - вы выводите две картинки в одном ответе. кстати, можно обойтись одним запросом к БД.
А как запихать 2 прямоугольника в одну картинку? Я не совсем ещё понял принцип построения этих динамических изображений...
Нужно слить 2 картинки в одну. Может какой-нибудь imagecopymerge подойдет? Если нет, то поищите другие варианты по запросу image merge php Добавлено спустя 4 минуты 9 секунд: А вообще разве нельзя сразу в одной картинке рисовать? Ну типа такого: Код (Text): $col = imagecolorallocate ($imch, 255, 0, 0); imagefilledrectangle ($imch, 0, 0, $chpr, 20, $col); $col = imagecolorallocate ($imch, 50, 0, 0); imagefilledrectangle ($imch, 0, 30, $nchpr, 20, $col); imagepng ($imch);
PCSpeaker, спасибо за ответ, но изображение не строится даже если сменить координаты на конкретные цифры (((
На странице отображается значок изображения и всё... Видимо, из-за наличия "header ("Content-type: image/png");" в коде. Само изображение не строится.
В информации о хостинге нет ни строчки про ГД. (если Вы этот журнал имели в виду) Добавлено спустя 5 минут 55 секунд: Вот такой простенький код выполняется, следует полагать, что ГД подключен... Код (Text): <?php header ("Content-type: image/png"); $im = ImageCreate (200, 100); $col = ImageColorAllocate ($im, 255, 50, 100); ImagePng ($im); ?> Добавлено спустя 6 минут 28 секунд: А если в код, написанный выше добавить данные из базы данных и подставить в размеры прямоугольника переменные, то код уже не выполняется. Что за чертовщина-то? Код (Text): <?php include ("bd.php"); $querynechet=mysql_query("SELECT SUM(nechet) FROM users3",$db); $sumnechet=mysql_result($querynechet,0); $querychet=mysql_query("SELECT SUM(chet) FROM users3",$db); $sumchet=mysql_result($querychet,0); $all=$sumnechet+$sumchet; $chpr=round(($sumchet/$all)*100); $nchpr=round(($sumnechet/$all)*100); header ("Content-type: image/png"); $im = ImageCreate ($chpr, $nchpr) ; $col = ImageColorAllocate ($im, 255, 0, 0); ImagePng ($im); ?>
если в простом виде код выполняется и показывается нужная картинка то гд подключен, ок. но журнальчик-то блин прочитайте - то что не выполняется другой код свидетельствует о наличии косяка и он как-бы обязан быть журналирован так как это дев а не прод.
журнальчик ошибочек. дев это development - режим разработки когда журнальчики должны быть перенасыщены данными для быстрой отладки. а прод это production - это уже боевое использование приложения, при котором журналирование минимально или отключено совсем. вы в форуме программирования значит знаний у вас уже достаточно. если это не так - не стесняйтесь создавать темы в форумах для новичков (если вы верите в свои силы) или блондинок (если не боитесь в этом признаться)
Нет, в своих силах я не уверен. php профессионально не занимаюсь. Я , действительно, чайник, признаюсь в этом открыто и без боязни ))) Впервые на этом сайте. Создал тему в этом форуме потому что название форума говорит само за себя: "ПРОГРАММИРОВАНИЕ", значит тут обсуждаются вопросы, связанные с программированием. Сейчас продублирую этот вопрос в форуме для новичков, может там помогут...