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

Форум PHP

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

 

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

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

тема: не верно работает счетчик $total
 
 автор: liberty   (22.06.2013 в 22:57)   письмо автору
 
 

счетчик
      $query = "SELECT COUNT(*) FROM school   
                WHERE id_rono='$myrow[id_rono]'";  
      $res = mysql_query($query);  
      if(!$res) exit("<br>Ошибка обращения к базе данных - ".mysql_error());  
      $total = mysql_result($res, 0);  

правильно выводит значение только для первой записи.
остальные записи имеют тоже самое значение $total.
Пробовал вывести вне цикла. Все равно не верное значение.

<?php 
$result 
mysql_query("SELECT * FROM rono WHERE id_mo='$id_mo' ORDER by name"); 
if (!
$result)
{
echo 
"<p>Запрос на выборку данных из базы не прошел. </p>";
exit (
mysql_error()); 
}
if (
mysql_num_rows($result) > 0)
{

$myrow mysql_fetch_array($result);

      
$query "SELECT COUNT(*) FROM school   
                WHERE id_rono='
$myrow[id_rono]'";  
      
$res mysql_query($query);  
      if(!
$res) exit("<br>Ошибка обращения к базе данных - ".mysql_error());  
      
$total mysql_result($res0);  

do
{
       
printf ("<a href='rono.php?id_rono=%s'>"$myrow["id_rono"]);
       
printf ("<h3>%s</a></h3>
"
$myrow["name"]);
echo 
"<p>Количество школ ($total)</p>";
}
while (
$myrow mysql_fetch_array($result));
}
?>

  Ответить  
 
 автор: Sfinks   (23.06.2013 в 14:45)   письмо автору
 
   для: liberty   (22.06.2013 в 22:57)
 

Вы не правильно расставляете кавычки.
Да, и если id_rono у вас - целое, то в запросе кавычки не нужны.
<?
      $query 
"SELECT COUNT(*) FROM school
                WHERE id_rono=
{$myrow['id_rono']}";
или
<?
      $query 
"SELECT COUNT(*) FROM school
                WHERE id_rono="
.$myrow['id_rono'];

  Ответить  
 
 автор: Sfinks   (23.06.2013 в 14:49)   письмо автору
 
   для: liberty   (22.06.2013 в 22:57)
 

А вообще, все что вы тут делаете, делается одним запросом:
SELECT id_rono
     , count(*)co
FROM school
GROUP BY id_rono
а не 1 запрос + N запросов в цикле!

  Ответить  
 
 автор: Sfinks   (23.06.2013 в 14:52)   письмо автору
 
   для: liberty   (22.06.2013 в 22:57)
 

А если еще внимательнее посмотреть, то в цикле вы только выводите результат одного единственного запроса. Сам запрос у вас перед циклом. Так откуда же возьмется разный результат, если запрос был сделан только для одного ID?

  Ответить  
Rambler's Top100
вверх

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