Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Cформировать массив из таблицы базы данных
 
 автор: technic611   (10.05.2006 в 03:44)   письмо автору
 
 

Прочитал статью как создавать гистограммы.
Так там данные хранятся в таком массиве $sector=array(89, 589, 569, 456, и.тд)
Как из базы занести эти самые данные в этот массив?

   
 
 автор: cheops   (10.05.2006 в 13:57)   письмо автору
 
   для: technic611   (10.05.2006 в 03:44)
 

А какова структура таблица в общем случае, это выглядит примерно так
<?php
  $query 
"SELECT val FROM tbl";
  
$tbl mysql_query($query);
  if(!
$tbl) exit(mysql_error());
  if(
mysql_num_rows($tbl) > 0)
  {
     while(
$table mysql_fetch_array($tbl))
     {
       
$sector $table['val'];
     }
  }
?>

   
 
 автор: technic611   (11.05.2006 в 07:37)   письмо автору
 
   для: cheops   (10.05.2006 в 13:57)
 

Мне нужно брать данные не из одного а из пяти столбиков с назаниями 1, 2, 3, 4, 5. В них находятся число оценок, соответсвующее названию столбца

   
 
 автор: cheops   (11.05.2006 в 10:25)   письмо автору
 
   для: technic611   (11.05.2006 в 07:37)
 

Приведите дамп таблицы, если не сложно...

   
 
 автор: technic611   (11.05.2006 в 10:58)   письмо автору
 
   для: cheops   (11.05.2006 в 10:25)
 

-- phpMyAdmin SQL Dump
-- version 2.6.0-pl1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Май 13 2006 г., 16:00
-- Версия сервера: 4.0.21
-- Версия PHP: 5.0.1
--
-- БД: ''
--

-- --------------------------------------------------------

--
-- Структура таблицы 'rating'
--

CREATE TABLE 'rating' (
'id_rating' int(11) NOT NULL auto_increment,
'marka' tinytext NOT NULL,
'model' tinytext NOT NULL,
'year' tinytext NOT NULL,
'volume' int(11) NOT NULL default '0',
'trans' enum('m','a') NOT NULL default 'm',
'dvig' tinytext NOT NULL,
'privod' enum('p','z','pl') NOT NULL default 'p',
'kuzov' tinytext NOT NULL,
'tip' enum('s','p','u','h','k','d','m','a','g','kb','mv','r','dr') NOT NULL default 's',
'kompl' tinytext NOT NULL,
'color' tinytext NOT NULL,
'rashod' tinytext NOT NULL,
'srok' tinytext NOT NULL,
'foto' int(1) NOT NULL default '0',
'avtor' tinytext NOT NULL,
'email' tinytext NOT NULL,
'sm' int(11) NOT NULL default '0',
'gorod' int(11) NOT NULL default '0',
'date' date NOT NULL default '0000-00-00',
'text' text NOT NULL,
'ret' int(11) default '0',
'count' int(11) default '0',
'id_marka' int(11) NOT NULL default '0',
'id_model' int(11) NOT NULL default '0',
'1' int(11) NOT NULL default '0',
'2' int(11) NOT NULL default '0',
'3' int(11) NOT NULL default '0',
'4' int(11) NOT NULL default '0',
'5' int(11) NOT NULL default '0',
PRIMARY KEY ('id_rating')
) TYPE=MyISAM AUTO_INCREMENT=1 ;

--
-- Дамп данных таблицы 'rating'
--

   
 
 автор: cheops   (11.05.2006 в 12:53)   письмо автору
 
   для: technic611   (11.05.2006 в 10:58)
 

Тогда можно поступить следующим образом
<?php 
  $query 
"SELECT * FROM rating"
  
$tbl mysql_query($query); 
  if(!
$tbl) exit(mysql_error()); 
  if(
mysql_num_rows($tbl) > 0
  { 
     while(
$table mysql_fetch_array($tbl)) 
     { 
       
$sector[] = $table['1']; 
       
$sector[] = $table['2']; 
       
$sector[] = $table['3']; 
       
$sector[] = $table['4']; 
       
$sector[] = $table['5']; 
     } 
  } 
?>

или нужна доля оценок? Какова исходная задача?

   
 
 автор: technic611   (12.05.2006 в 05:26)   письмо автору
 
   для: cheops   (11.05.2006 в 12:53)
 

Спасибо, то что надо. Только mysql_num_rows не работает. Если значений в таблице нет, выдается ошибка деления на ноль, как тут можно поступить. Я уже mysql_result применял не помогает

   
 
 автор: 4epHbIu   (12.05.2006 в 08:44)   письмо автору
 
   для: technic611   (12.05.2006 в 05:26)
 

поставить перед mysql_num_rows символ @ => получится @mysql_num_rows

@- подавляет ошибку, и не выводит на страницу php.(Вроде бы так:))

   
 
 автор: technic611   (12.05.2006 в 09:55)   письмо автору
 
   для: 4epHbIu   (12.05.2006 в 08:44)
 

Подставил перед mysql_num_rows все равно выдается ошибка.
Подставил около переменной где производится деление. Все работает. Спасибо

   
 
 автор: aleksejtm   (12.05.2006 в 10:49)   письмо автору
 
   для: technic611   (12.05.2006 в 09:55)
 

А как построить гистограмму (где сам код)?

   
 
 автор: technic611   (12.05.2006 в 11:43)   письмо автору
 
   для: aleksejtm   (12.05.2006 в 10:49)
 

Я не строил диаграму, а просто удлинял и укорачивал рисунок по высоте на основании полученных данных

   
 
 автор: cheops   (12.05.2006 в 12:36)   письмо автору
 
   для: aleksejtm   (12.05.2006 в 10:49)
 

>А как построить гистограмму (где сам код)?
Об этом можно почитать более подробно в ответе к задаче 16 или воспользовавшись кодом системы голосования Tabella из раздела downloads.

PS Под новые вопросы лучше заводить новые темы.

   
 
 автор: cheops   (12.05.2006 в 11:20)   письмо автору
 
   для: technic611   (12.05.2006 в 05:26)
 

Эта функция как раз и предназначена для предотвращения таких ситуаций
<?php 
  $query 
"SELECT * FROM rating"
  
$tbl mysql_query($query); 
  if(!
$tbl) exit(mysql_error()); 
  if(
mysql_num_rows($tbl) > 0
  { 
     while(
$table mysql_fetch_array($tbl)) 
     { 
       
$sector[] = $table['1']; 
       
$sector[] = $table['2']; 
       
$sector[] = $table['3']; 
       
$sector[] = $table['4']; 
       
$sector[] = $table['5']; 
     } 
  } 
  else
  {
     exit(
"К сожалению нет ни одной записи, построение диаграммы не возможно");
  }
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования