как мне загнать данные из базы в массив, что-то вроде этого, но это не работает include("mysql.php"); $rs=mysql_query("select name, value from graphic"); while ($data2=mysql_fetch_array($rs)) { $Data = array( $data2["name"] => $data2["value"] ); }
$rs=mysql_query("select name, value from graphic"); while ($data2=mysql_fetch_array($rs)) { $Data[$data2["name"]] = $data2["value"]; }
вот исходник массива $Data = array( 'Коля' => 16, 'Петя' => 14, 'Федя' => 11, 'Маша' => 17, 'Ипполит' => 8 ); вместо него загоняю $rs=mysql_query("select name, value from graphic"); while ($data2=mysql_fetch_array($rs)) { $Data[$data2["name"]] = $data2["value"]; } не пашет
Как не пашет? А что print_r($Data) выдает? Еще как вариант - http://ru2.php.net/manual/ru/function.array-merge.php
<?php // Назовем этот файл data.php - он нам еще понадобится. include("mysql.php"); $rs=mysql_query("select name, value from graphic"); while ($data2=mysql_fetch_array($rs)) { //echo $data2["name"]; $Data[$data2["name"]] = $data2["value"]; echo $Data [1]; } $Title = 'Количество марок у моих друзей'; ?> Вот что пишет Notice: Undefined offset: 1 in z:\home\localhost\www\pattern\data.php on line 10, хотя вроде все правильно.
Вы на строку выше задали в ассоциативном массиве ключ "Петя", и почему-то обращаетесь к ключу массива по числу. Это как?
вот сделал правильно, работает include("mysql.php"); $rs=mysql_query("select name, value from graphic"); while ($data2=mysql_fetch_array($rs)) { $Data3[$data2["name"]] = $data2["value"]; } print_r($Data3)."<br>"; проблема в том что есть описанный здесь скрипт http://www.php5.ru/articles/image, и вместо жестко забитого масива вот он $Title = 'Количество марок у моих друзей'; $Data = array( 'Коля' => 16, 'Петя' => 14, 'Федя' => 11, 'Маша' => 17, 'Ипполит' => 8 ); Мне надо загнать данные из базы, данные выводятся, а вот в самом скрипте не работают, только жестко забитый массив работает, но мне нужно чтобы массив брался из базы.
udodirc, читай про типы ошибок. Нотис - тип самых мелких ошибок. В твоём случае, отсутствует ключ 1 у массива $Data. Эти ошибки, ИМХО, лучше давить через error_reporting (там же список типов ошибок). Массив $Data содержит список марок друзей, ключи массива - имена друзей. Логично предположить, что ни одного из них не зовут 1.
include("mysql.php"); $rs=mysql_query("select name, value from graphic"); while ($data2=mysql_fetch_array($rs)) { $Data3[$data2["name"]] = $data2["value"]; } print_r($Data3)."<br>"; проблема в том что есть описанный здесь скрипт http://www.php5.ru/articles/image, и вместо жестко забитого масива вот он $Title = 'Количество марок у моих друзей'; $Data = array( 'Коля' => 16, 'Петя' => 14, 'Федя' => 11, 'Маша' => 17, 'Ипполит' => 8 ); Этот код рабочий вот он выводит Array ( [коля] => 34 [Вася] => 12 [петя] => 45 ) Array ( [Коля] => 16 [Петя] => 14 [Федя] => 11 [Маша] => 17 [Ипполит] => 8 ) и там нет ключей по имени 1, не пойму все работает просто именно при подключении этого файла он не пашет, только жесткий массив
в базе MySql есть три поля id, name ,value там есть данные: коля 34 Вася 12 петя 45 я их записываю сюда $rs=mysql_query("select name, value from graphic"); while ($data2=mysql_fetch_array($rs)) { $Data[$data2["name"]] = $data2["value"]; } print_r($Data)."<br>"; вот он выводит правильно Array ( [коля] => 34 [Вася] => 12 [петя] => 45 ) он находится в data.php, но когда я подключаю его в этот скрипт <?php define('GRAPH_WIDTH', 400); // ширина картинки define('GRAPH_HEIGHT', 300); // высота картинки define('GRAPH_OFFSET_TOP', 40); // отступ сверху define('GRAPH_OFFSET_LEFT', 40); // отступ слева define('GRAPH_OFFSET_RIGHT', 5); // отстут справа define('GRAPH_OFFSET_BOTTOM', 30); // отступ снизу $colors = array(0xFF0000,0x00FF00,0x0000FF, // цвета столбцов 0xFFFF00,0x00FFFF,0xFF00FF); require('data.php'); // Вот и понадобился data.php // Считаем ширину столбцов $col_width = (GRAPH_WIDTH - GRAPH_OFFSET_LEFT - GRAPH_OFFSET_RIGHT) / count($Data); // Считаем высоту столбца, соответствующего максимальному значению $col_maxheight = (GRAPH_HEIGHT - GRAPH_OFFSET_TOP - GRAPH_OFFSET_BOTTOM); // Ищем максимальное значение в массиве, соответствующее столбцу максимальной высоты $max_value = max($Data); $image = imagecreatetruecolor(GRAPH_WIDTH,GRAPH_HEIGHT) // создаем изображение... or die('Cannot create image'); // ...или прерываем работу скрипта в случае ошибки imagefill($image, 0, 0, 0xFFFFFF); // белый фон // рисуем столбцы $x = GRAPH_OFFSET_LEFT; $y = GRAPH_OFFSET_TOP + $col_maxheight; $i = 0; foreach($Data as $value) { imagefilledrectangle( // рисуем сплошной прямоугольник $image, $x, $y - round($value*$col_maxheight/$max_value), $x + $col_width - 1, $y, $colors[$i++%count($colors)] ); $x += $col_width; } // рисуем координатную ось imageline($image, GRAPH_OFFSET_LEFT - 5, GRAPH_OFFSET_TOP, GRAPH_OFFSET_LEFT - 5, $y, 0xCCCCCC); for($value=0; $value<=$max_value; $value++) { imageline($image, GRAPH_OFFSET_LEFT - 7, $Y = $y - round($value*$col_maxheight/$max_value), GRAPH_OFFSET_LEFT - 5, $Y, 0xCCCCCC); imagestring($image, 1, GRAPH_OFFSET_LEFT / 2, $Y - 4, $value, 0x000000); } // Устанавливаем тип документа - "изображение в формате PNG"... header('Content-type: image/png'); // ...И, наконец, выведем сгенерированную картинку в формате PNG: imagepng($image); imagedestroy($image); // освобождаем память, выделенную для изображения ?> он не работает, но если подключить жестко забитый массив $Data = array( 'Коля' => 16, 'Петя' => 14, 'Федя' => 11, 'Маша' => 17, 'Ипполит' => 8 ); то работает, проблема не в массиве, он выодится рпавильно а в скрипте там он его не может обработать