Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> обработка запросов php+mysql 
:(
    Опции темы
MagicPRO
Дата 22.3.2012, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 4.10.2006
Где: Kremencity

Репутация: нет
Всего: нет



Добрый день! Проблема следующая, я только начинаю учить php & mysql, но по чуть чуть есть прогресс. Проблема такая: создаю базу пациентов госпиталя, и все вроде хорошо, НО надо сделать в регистратура страницу статистики(т.е. количество пациентов по группе инвалидности). Сама форма ввода была осуществлена через SELECT OPTION. Теперь я делаю выборку. Вот собственной код (не рабочий), подскажите как его оптимизировать?

Код


/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "poliklinik"; // название базы данных
/* Таблица MySQL, в которой хранятся данные */
$table = "pacients";
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());

$query1 = "SELECT COUNT(*) FROM $table WHERE kateg = 'УБД'";
$query2 = "SELECT COUNT(*) FROM $table WHERE kateg = 'УВ'";
$query3 = "SELECT COUNT(*) FROM $table WHERE kateg = 'ІВ'";
$query4 = "SELECT COUNT(*) FROM $table WHERE kateg = 'ДВінв'";
$query5 = "SELECT COUNT(*) FROM $table WHERE kateg = 'С/З'";
$query5 = "SELECT COUNT(*) FROM $table WHERE kateg = 'ІВчаес'";

$res = mysql_query($query1) or die(mysql_error());
$res = mysql_query($query2) or die(mysql_error());
$res = mysql_query($query3) or die(mysql_error());
$res = mysql_query($query4) or die(mysql_error());
$res = mysql_query($query5) or die(mysql_error());
$res = mysql_query($query6) or die(mysql_error());

echo ("
<html>
 
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />
 
<title>Статистика</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>
");
 echo "<tr>\n";
    echo "<td>".$query1."</td>\n";
    echo "<td>".$query2."</td>\n";
    echo "<td>".$query3."</td>\n";
    echo "<td>".$query4."</td>\n";
    echo "<td>".$query5."</td>\n";
    echo "<td>".$query6."</td>\n</tr>\n";

 
echo ("</table>\n");
/* Закрываем соединение */
mysql_close();
 
/* Выводим ссылку возврата */
echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index2.html\">Вернуться назад</a></div>");

--------------------
 smile=iwashere 
PM MAIL ICQ Skype   Вверх
Fortop
Дата 22.3.2012, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 3
Всего: 42



Для начала один запрос

Код

SELECT COUNT(*),  kateg FROM $table WHERE kateg IN ( тут список, если хотим отфильтровать только нужные значения) GROUP BY  kateg


Если нужны все значения, то секцию WHERE уберете, оставив лишь GROUP BY

А чтобы код работал, значения надо из $res забирать поищите mysql_fetch_assoc()  например


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
MagicPRO
Дата 22.3.2012, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 4.10.2006
Где: Kremencity

Репутация: нет
Всего: нет



Спасибо! phpamyadmin сработало)..а как теперь вывести его под таблицу!? Ведь я вывожу не под каждое поле, а именно из одного
--------------------
 smile=iwashere 
PM MAIL ICQ Skype   Вверх
Fortop
Дата 22.3.2012, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 3
Всего: 42



Цитата(MagicPRO @  22.3.2012,  16:22 Найти цитируемый пост)
а как теперь вывести его под таблицу!? Ведь я вывожу не под каждое поле, а именно из одного 

Поищите немного по форуму как выводить данные из БД (такое есть в том числе и в виде таблицы)


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
MagicPRO
Дата 22.3.2012, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 4.10.2006
Где: Kremencity

Репутация: нет
Всего: нет



Код

$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>


Выводит таблицу а в них пишется ARRAY в каждой ячейке(

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  1.jpg 77,05 Kb
--------------------
 smile=iwashere 
PM MAIL ICQ Skype   Вверх
MagicPRO
Дата 23.3.2012, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 4.10.2006
Где: Kremencity

Репутация: нет
Всего: нет



Перечитал инфу по командам не вьеду((( То выведет не количество а название категорий то вообще ничего(. Как правильно организовать вывод?? Подскажите плиз!
--------------------
 smile=iwashere 
PM MAIL ICQ Skype   Вверх
MoLeX
Дата 23.3.2012, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



внимательно читаем про mysql_fetch_assoc
Цитата

Код

    while ($row = mysql_fetch_assoc($result)) {
        echo $row["userid"];
        echo $row["fullname"];
        echo $row["userstatus"];
    }




--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
MagicPRO
Дата 23.3.2012, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 4.10.2006
Где: Kremencity

Репутация: нет
Всего: нет



MoLeX, этот метод для вывода информации по всем полям. Я его разобрал. А у меня конкретно одно поле Kateg, в него пользователь заносит данные через SELECT OPTION. 
В phpmyadmin при запросе выводит:
COUNT(*)    kateg
2                   ДВінв
1                      ІВ
2                     С/З
2                     УБД


--------------------
 smile=iwashere 
PM MAIL ICQ Skype   Вверх
Photon
Дата 25.3.2012, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 1
Всего: 12



Код

$row = mysql_fetch_array($res);
$row[0] - count
$row[1] - категория


или 
Код

$res = mysql_query('select count(1) as cnt, kateg from patients group by kateg');
while($row = mysql_fetch_assoc($res)) {
     $row['cnt'] - count
     $row['kateg'] - категория
}


Это сообщение отредактировал(а) Photon - 25.3.2012, 17:46


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
MagicPRO
Дата 26.3.2012, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 4.10.2006
Где: Kremencity

Репутация: нет
Всего: нет



Спасибо большое за помощь! Проблема решена,тему можно закрывать!
--------------------
 smile=iwashere 
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0670 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.