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

Форум MySQL

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

 

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

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

тема: Подсчёт количества записей в таблице

Сообщения:  [1-10]   [11-15] 

 
 автор: Trianon   (26.04.2007 в 17:10)   письмо автору
 
   для: Zhenya1992   (26.04.2007 в 16:57)
 

Поскольку в запрос входит переменная, в нем запросто может возникнуть ошибка. эта строка прекращает выполнение скрипта и выдает диагностику, если такое произошло.

   
 
 автор: Zhenya1992   (26.04.2007 в 17:00)   письмо автору
 
   для: Trianon   (26.04.2007 в 16:47)
 

Да, действительно, попробовал - работает. Большое спасибо за помощь.

   
 
 автор: Zhenya1992   (26.04.2007 в 16:57)   письмо автору
 
   для: cheops   (22.04.2007 в 13:49)
 

Спасибо. Попробовал всё работает.
Только не совсем понятно что делает строка if(!$sts) exit("Ошибка ".mysql_error());

   
 
 автор: Trianon   (26.04.2007 в 16:47)   письмо автору
 
   для: Zhenya1992   (26.04.2007 в 16:44)
 

Это в Вашем коде была ошибка, а я не заметил, когда скопировал. Звездочку нужно взять в круглые скобки именно так, как я написал в (22.04.2007 в 21:06)

   
 
 автор: Zhenya1992   (26.04.2007 в 16:44)   письмо автору
 
   для: Trianon   (25.04.2007 в 14:42)
 

Копировал Ваш код, выдало ошибку
mysql_result(): supplied argument is not a valid MySQL result resource in ...
При этом срабатывает ветка "верно" всё равно.

   
 
 автор: Trianon   (25.04.2007 в 14:42)   письмо автору
 
   для: Zhenya1992   (25.04.2007 в 13:11)
 

Потому что mysql_query возвращает дескриптор запроса, а он, если запрос корректен, всяко будет оценен как не нуль.
Пишите так:

$f = "SELECT COUNT * FROM `stats` WHERE `name` LIKE '$name'";
$n=intval(mysql_result(mysql_query($f), 0));
if ($n==0) ...

   
 
 автор: Zhenya1992   (25.04.2007 в 13:11)   письмо автору
 
   для: Trianon   (22.04.2007 в 21:06)
 

$f = "SELECT COUNT * FROM `stats` WHERE `name` LIKE '$name'";
$n=mysql_query($f);
if ($n==0) ...
Даже когда я ввожу переменную $name которая есть в таблице, то всё равно срабатывает ветка верно. Т.е. n=0 всегда.

   
 
 автор: Trianon   (22.04.2007 в 21:06)   письмо автору
 
   для: Zhenya1992   (22.04.2007 в 12:55)
 

>$n = "SELECT * FROM `stats` WHERE `name` LIKE '$name'"
>Какие значения может принимать перменная $n в зависимости от того, есть ли $name в поле 'name' таблицы 'stats'?

Запрос, который вы описали словами, задается несколько по-другому:

$n = "SELECT COUNT(*) FROM `stats` WHERE `name` LIKE '$name'";

Разница очевидна:
1 - вынуть из таблицы все строки, удовлетворяющие условию.
2 - получить одну строку, одно поле: число, равное количеству строк в таблице, удовлетворяющих условию.

первый запрос может вернуть ни одной строки, а может вернуть и миллиард.
второй вернет строго одно число, отвечающее на вопрос.

   
 
 автор: cheops   (22.04.2007 в 13:51)   письмо автору
 
   для: Zhenya1992   (22.04.2007 в 13:34)
 

Определить наличие полей в результирующей таблице можно при помощи функции mysql_num_rows() - посмотрите пост ниже.

   
 
 автор: cheops   (22.04.2007 в 13:49)   письмо автору
 
   для: Zhenya1992   (22.04.2007 в 13:34)
 

Да, затем следует получать дескриптор, проверять его на наличие ошибок и наличие записей в таблице
<?php
  $n 
"SELECT * FROM `stats` WHERE `name` LIKE '$name'";
  
$sts mysql_query($n);
  if(!
$sts) exit("Ошибка ".mysql_error());
  
// Если имеется хотя бы одна запись
  
if(mysql_num_rows($sts))
  {
    while(
$stats mysql_fetch_array($sts))
    {
      echo 
"<pre>";
      
print_r($stats);
      echo 
"</pre>";
    }
  }
  else
  {
    echo 
"Не обнаружено ни одной записи";
  }
?>

   

Сообщения:  [1-10]   [11-15] 

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

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