Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6323
Последний выпуск: 19.06.2015

Вывести массив данных

2.2K
24 марта 2012 года
MagicPRO
100 / / 02.10.2006
Добрый день! Проблема следующая, я только начинаю учить php & mysql, но по чуть чуть есть прогресс. Проблема такая: создаю базу пациентов госпиталя, и все вроде хорошо, НО надо сделать в регистратуре страницу статистики(т.е. количество пациентов по группе инвалидности).Есть столбец КАТЕГОРИЯ, при помощи SELECT OPTION можно присвоить 1 из 6 ти значения. Собственно выборку я сделал в phpmyadmin, все правильно показывает, а как теперь вывести в виде маленькой таблицы.
В phpmyadmin при запросе выводит:
COUNT(*) kateg
2 ДВінв
1 ІВ
2 С/З
2 УБД
Код:
$query="SELECT COUNT(*), kateg FROM $table WHERE kateg IN ( 'УБД','УВ','ІВ','ДВінв','С/З','ІВчаес') GROUP BY  kateg";
$res = mysql_query($query) or die(mysql_error());
 
echo ("
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />    
<title>Вывод данных из MySQL</title> <style type=\"text/css\">body { font: 12px Georgia; color: #666666; }h1 { font-size: 16px; text-align: center; }table { width: 400px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }td { padding: 3px; text-align: center; vertical-align: middle; }.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }</style>
</head>
<body>
<h1>Статистика по группам инвалидности</h1>
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\"> <tr style=\"border: solid 1px #000\">
<td align=\"center\"><b>УБД</b></td>
<td align=\"center\"><b>УВ</b></td>
<td align=\"center\"><b>ІВ</b></td>
<td align=\"center\"><b>ДВінв</b></td>
<td align=\"center\"><b>С/З</b></td>
<td align=\"center\"><b>ІВчаес</b></td>  </tr>"
);
while ($row = mysql_fetch_assoc($res))
{   echo "<tr>\n";    echo "<td>".$row."</td>\n";  
echo "<td>".$row."</td>\n";  
echo "<td>".$row."</td>\n";  
echo "<td>".$row."</td>\n";  
echo "<td>".$row."</td>\n";  
echo "<td>".$row."</td>\n</tr>\n";}
echo ("</table>\n");
mysql_close();</body></html>
285
25 марта 2012 года
Romik
479 / / 24.11.2002
попробуйте вот так:

Код:
<?
$query="SELECT COUNT(*) AS total, kateg FROM $table WHERE kateg IN ( 'УБД','УВ','ІВ','ДВінв','С/З','ІВчаес') GROUP BY  kateg";
$res = mysql_query($query) or die(mysql_error());
 
$body = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />    
<title>Вывод данных из MySQL</title>
<style type="text/css">
   body { font: 12px Georgia; color: #666666; }
   h1 { font-size: 16px; text-align: center; }
   table { width: 400px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }
   td { padding: 3px; text-align: center; vertical-align: middle; }
   .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }
</style>
</head>
<body>
<h1>Статистика по группам инвалидности</h1>
<table border="1" cellpadding="0" cellspacing="0">
  <tr style="border: solid 1px #000">
      <td align="center"><b> # </b></td>
      <td align="center"><b>Категория</b></td>
 </tr>'
;
while (($row = mysql_fetch_assoc($res))!==false)
{  
  $body .= "<tr>
  <td>${row['total']}</td>
  <td>${row['kateg']}</td>
  </tr>"
;  
}
mysql_close();

$body .= "</table></body></html>";
echo $body;
2.2K
25 марта 2012 года
MagicPRO
100 / / 02.10.2006
теперь выдает вот такое как на фото
Прикрепленные файлы:
40 Кб
Загрузок: 652
285
25 марта 2012 года
Romik
479 / / 24.11.2002
тогда подмените цикл на:
 
Код:
while (($row = mysql_fetch_assoc($res))!==false)
{  
  $body .= "<tr>
  <td>"
. $row['total'] . "</td>
  <td>"
. $row['kateg'] . "</td>
  </tr>"
;  
}
либо выводите отладочную информацию: var_dump($row, true) внутри цикла в отдельной строке таблицы
2.2K
25 марта 2012 года
MagicPRO
100 / / 02.10.2006
Спасибо Вам огромное,заработало!
п.с. а как бы выглядело с отладочной информацией?
285
25 марта 2012 года
Romik
479 / / 24.11.2002
например вот так:
 
Код:
while (($row = mysql_fetch_assoc($res))!==false)
{
  $body .= "<tr><td colspan='2'>" . print_r($row, true) . "</td></tr>";  
  $body .= "<tr>
  <td>"
. $row['total'] . "</td>
  <td>"
. $row['kateg'] . "</td>
  </tr>"
;  
}
Вообще можно оформлять вывод отладочной информации как угодно. Мне удобно складывать всё в строку с помощью print_r().

Я прежде предлагал var_dump, на самом деле имел в виду print_r :)
2.2K
25 марта 2012 года
MagicPRO
100 / / 02.10.2006
Еще раз большое спасибо! Вопрос решен!Тему можно закрывать!
366
26 марта 2012 года
int
668 / / 30.03.2005
 
Код:
while (($row = mysql_fetch_assoc($res))!==false)
А разве не удобнее писать так?
 
Код:
while ($row = mysql_fetch_assoc($res))
Нафиг столько скобок и лишних очевидных условий?

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог