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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Не корректно подсчитывается количество записей в базе данных

Сообщения:  [1-10]    [11-20]  [21-24] 

 
 автор: cheops   (07.04.2011 в 13:49)   письмо автору
 
   для: franko   (07.04.2011 в 13:20)
 

Сравнивайте переменную $_GET['id_town'] с $row['id_town'], если они совпадают - выделяйте ссылку, а при выборе университета ориентируйтесь на id_town, а не на id_region (для этого удобно WHERE-условие формировать отдельно от запроса тоже при помощи оператора if).

PS Под новые вопросы лучше заводить новые темы (эта уже слишком длинная).

  Ответить  
 
 автор: franko   (07.04.2011 в 13:20)   письмо автору
 
   для: franko   (07.04.2011 в 12:35)
 

к примеру, как реализовать следующее:

ссылка которая содержит город с кол-вом учебных заведений
 <td nowrap><a href='post_towns.php?id_town=$row[id_town]'>$row[title]</a>&nbsp;($total)</td>   

будет вести не на post_towns.php а возвращаться на эту же страницу, но теперь город по которому кликнули выделяется и выводится список учебных заведений в этом городе.
вот как здесьhttp://www.edu.ru/abitur/act.5/rgn.25000000/index.php

  Ответить  
 
 автор: franko   (07.04.2011 в 12:35)   письмо автору
 
   для: cheops   (07.04.2011 в 12:32)
 

Работает как часы. спасибо!

  Ответить  
 
 автор: cheops   (07.04.2011 в 12:32)   письмо автору
 
   для: franko   (07.04.2011 в 11:52)
 

Забыл $query, возьмите вот этот вариант
<?php    
  $query 
"SELECT * FROM towns  
            WHERE id_region='
$id_region
            ORDER by title"

  
$sql mysql_query($query);  
  if(!
$sql) exit("<br>Ошибка обращения к базе данных - ".mysql_error()); 
  if(!
mysql_num_rows($sql)) 
  { 
    echo 
"<br>В данном разделе пока нет информации"
  } 
  else 
  {  
    echo 
"<table width='100%' border='0' cellspacing='0' cellpadding='0'>";    
    
$i 0;    
    while (
$row mysql_fetch_array($sql))     
    {     
      
$query "SELECT COUNT(*) FROM universities  
                WHERE id_town='
$row[id_town]'"
      
$res mysql_query($query); 
      if(!
$res) exit("<br>Ошибка обращения к базе данных - ".mysql_error()); 
      
$total mysql_result($res0); 

      
$i++;    
      if(
$i == 1) echo "<tr>";    
      echo 
"<td><table width='100px' border='0' cellspacing='0' cellpadding='0' >   
            <tr>   
            <td nowrap><a href='post_towns.php?id_town=
$row[id_town]'>$row[title]</a>&nbsp;($total)</td>   
            </tr>   
            </table></td>"
;   
      
//Указываем количество столбцов на странице   
      
if($i == 3)    
      {    
        echo 
"</tr>";    
        
$i 0;    
      }    
    }    
    echo 
"</table>"
  } 
?>

  Ответить  
 
 автор: franko   (07.04.2011 в 11:52)   письмо автору
 
   для: cheops   (07.04.2011 в 11:23)
 

ошибку дает
Warning: Wrong parameter count for mysql_query() in .. on line 74

Ошибка обращения к базе данных -


74 строка - $res = mysql_query();

  Ответить  
 
 автор: cheops   (07.04.2011 в 11:23)   письмо автору
 
   для: franko   (07.04.2011 в 10:26)
 

Понятно, вы запрос вынесли за пределы цикла, возьмите вот этот блок
<?php   
$sql 
mysql_query("SELECT * FROM towns WHERE id_region='$id_region' ORDER by title"); 
if(!
$sql)  
{echo 
"<br>В данном разделе пока нет информации";}  
else   
{  
  if(
mysql_num_rows($sql) > 0)   
  { 
  
$res mysql_query("SELECT  COUNT(*) FROM universities WHERE id_town='$id_town'");
  if(!
$res) exit("Ошибка - ".$query); 
  
$row mysql_fetch_row($res);  
  
$total $row[0]; // всего записей
  
  
    
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";   
    
$i 0;   
    while (
$row mysql_fetch_array($sql))    
    {    
      
$i++;   
      if(
$i == 1) echo "<tr>";   
echo 
"<td><table width='100px' border='0' cellspacing='0' cellpadding='0' >  
<tr>  
<td nowrap><a href='post_towns.php?id_town=
$row[id_town]'>$row[title]</a>&nbsp;($total)</td>  
</tr>  
</table></td>"
;  
//Указываем количество столбцов на странице  
if($i == 3)   
{   
echo 
"</tr>";   
$i 0;   
}   
}   
echo 
"</table>";   
}}  
?>
и замените его следующим
<?php   
  $query 
"SELECT * FROM towns 
            WHERE id_region='
$id_region'
            ORDER by title"
;
  
$sql mysql_query($query); 
  if(!
$sql) exit("<br>Ошибка обращения к базе данных - ".mysql_error());
  if(!
mysql_num_rows($sql))
  {
    echo 
"<br>В данном разделе пока нет информации";
  }
  else
  { 
    echo 
"<table width='100%' border='0' cellspacing='0' cellpadding='0'>";   
    
$i 0;   
    while (
$row mysql_fetch_array($sql))    
    {    
      
$query "SELECT COUNT(*) FROM universities 
                WHERE id_town='
$row[id_town]'";
      
$res mysql_query();
      if(!
$res) exit("<br>Ошибка обращения к базе данных - ".mysql_error());
      
$total mysql_result($res0);

      
$i++;   
      if(
$i == 1) echo "<tr>";   
      echo 
"<td><table width='100px' border='0' cellspacing='0' cellpadding='0' >  
            <tr>  
            <td nowrap><a href='post_towns.php?id_town=
$row[id_town]'>$row[title]</a>&nbsp;($total)</td>  
            </tr>  
            </table></td>"
;  
      
//Указываем количество столбцов на странице  
      
if($i == 3)   
      {   
        echo 
"</tr>";   
        
$i 0;   
      }   
    }   
    echo 
"</table>";
  }
?>

  Ответить  
 
 автор: franko   (07.04.2011 в 10:26)   письмо автору
3.6 Кб
 
   для: cheops   (07.04.2011 в 10:21)
 

прикладываю

  Ответить  
 
 автор: cheops   (07.04.2011 в 10:21)   письмо автору
 
   для: franko   (07.04.2011 в 10:05)
 

Если не сложно прикрепите полный вариант скрипта в виде файла или опишите подробнее, как формируете переменную $id_town.

  Ответить  
 
 автор: franko   (07.04.2011 в 10:05)   письмо автору
 
   для: cheops   (07.04.2011 в 09:49)
 

если взглянуть на http://vuz.11klassniki.ru/post_regions.php?id_region=1 то города у меня извлекаются.
в скобках - (кол-во вузов) -по нулям

  Ответить  
 
 автор: cheops   (07.04.2011 в 09:49)   письмо автору
 
   для: franko   (07.04.2011 в 09:42)
 

Если я правильно понял, задумка была извлечь города из запроса
<?php
...
$sql mysql_query("SELECT * FROM towns WHERE id_region='$id_region' ORDER by title"); 
...
?>
Вы его выполняете, однако, данных из него не извлекаете: для этого запроса нет ни одного вызова функции mysql_fetch_array(), или какой-то другой функции, извлекающей данные из результирующей таблицы. Вы просто проверяете выполнен ли запрос и если выполнен, то начинаете извлекать ВУЗы. Обработайте его так (у вас получится два вложенных while-цикла), чтобы получить массив $towns и тогда вы сможете заполнить переменную $id_town
<?php
  
...
  while(
$towns mysql_fetch_array($sql))
  {
    ...
    
$id_town $towns['id_town'];
    ...
  }
  ...
?>

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-24] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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