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

Форум MySQL

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

 

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

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

тема: Получить результат работы функции COUNT() в PHP
 
 автор: ols   (26.07.2008 в 04:47)   письмо автору
 
 


$guest = "SELECT COUNT(*) FROM book WHERE '$use'";
$gt = mysql_query($guest);
$qw = mysql_fetch_array($gt);
if ($qw) echo $gw['name'];

Не выводит кол-во записей и все. Хоть убей.
Проболвал еще та менять

$qw = mysql_result($gt,0);

Все равно не...
помогите а

  Ответить  
 
 автор: Николай2357   (26.07.2008 в 07:00)   письмо автору
 
   для: ols   (26.07.2008 в 04:47)
 

Я еще чайник, поэтому не совсем понял, что нужно. Если к-во записей в поле name, совпадающих c $use, то у меня и без COUNT работает примерно так:
 
<?
$guest 
mysql_query("SELECT * FROM book  WHERE name='".$use."'");
  
$gt=mysql_num_rows($guest); 
  echo 
$gt;
?>

  Ответить  
 
 автор: Trianon   (26.07.2008 в 08:39)   письмо автору
 
   для: Николай2357   (26.07.2008 в 07:00)
 

Вот поскольку Вы еще чайник, то в ситуации, когда Вы не совсем понимаете, что нужно, Вам лучше воздержаться от ответа.
Ваше решение приводит к тому, что вся таблица book будет переписана в память php-процесса, в то время как нужно было получить одно единственное число.

  Ответить  
 
 автор: Николай2357   (26.07.2008 в 08:49)   письмо автору
 
   для: Trianon   (26.07.2008 в 08:39)
 

Это совсем не ответ, так как я сразу предупредил о своем статусе. А так как у меня похожая задача, полезно узнать, как правильно.
Что собственно и произошло. Спасибо.

  Ответить  
 
 автор: Trianon   (26.07.2008 в 09:00)   письмо автору
 
   для: Николай2357   (26.07.2008 в 08:49)
 

правильно (если совсем подробно) так:
<?
$sql 
"SELECT COUNT(*) AS cnt FROM book";
$res mysql_query($sql);
if(!
$res) exit("error in $sql: "mysql_error());
$count mysql_result($res0'cnt');
echo 
"Count: $count";

  Ответить  
 
 автор: Николай2357   (26.07.2008 в 09:35)   письмо автору
 
   для: Trianon   (26.07.2008 в 09:00)
 

Спасибо, мне в самую точку!

  Ответить  
 
 автор: sms-send   (26.07.2008 в 07:55)   письмо автору
 
   для: ols   (26.07.2008 в 04:47)
 

Ключ 'name' вообще откуда появился? В запросе о нём не упоминается.

print_r($gw);

  Ответить  
 
 автор: Trianon   (26.07.2008 в 08:45)   письмо автору
 
   для: ols   (26.07.2008 в 04:47)
 

А что выводит?
И что значит WHERE '$use' ?
Наверняка в этом месте у Вас ошибка.
После WHERE должно идти логическое выражение.
Оно не должно заключаться в апострофы.

  Ответить  
 
 автор: ols   (27.07.2008 в 00:10)   письмо автору
 
   для: Trianon   (26.07.2008 в 08:45)
 


<?
$sql 
"SELECT COUNT(*) AS cnt FROM book";
$rez=mysql_query($sql);
if(!
$rez) exit("error in $sql:".mysql_error());
$count mysql_result($rez,0,'cnt');
echo 
"Count: $count";
?

отлично работает, но вот когда делаю так

<?
$sql 
"SELECT COUNT(*) AS cnt FROM book WHERE name=$use";
$rez=mysql_query($sql);
if(!
$rez) exit("error in $sql:".mysql_error());
$count mysql_result($rez,0,'cnt');
echo 
"Count: $count";
?>

Выводит ошибку -
error in SELECT COUNT(*) AS cnt FROM book WHERE name=Admin:Unknown column 'Admin' in 'where clause'

Для интереса сделал WHERE id_mesag и подставил целочисленое значение, резульат был положительным.
получается что, в WHERE в данном случае можно подставлять только поля с целым типом?

  Ответить  
 
 автор: Trianon   (27.07.2008 в 00:35)   письмо автору
 
   для: ols   (27.07.2008 в 00:10)
 

Что, по-Вашему, должно означать
WHERE name=Admin
?
Или по-другому, что Вы хотите достичь этим условием?

  Ответить  
 
 автор: ols   (27.07.2008 в 01:00)   письмо автору
 
   для: Trianon   (27.07.2008 в 00:35)
 

я хочу подсчитать сколько сообщений оставил данный пользователь.

  Ответить  
 
 автор: Trianon   (27.07.2008 в 01:34)   письмо автору
 
   для: ols   (27.07.2008 в 01:00)
 

данный это какой?
Пока что Вы подсчитываете количество строк в таблице, в которых в поле name и в поле admin написано одно и то же.
Если Вы хотите получить число строк, у которых в поле name записано Admin, писать нужно
WHERE name = 'Admin'

  Ответить  
 
 автор: ols   (27.07.2008 в 01:01)   письмо автору
 
   для: Trianon   (27.07.2008 в 00:35)
 

я хочу подсчитать сколько сообщений оставил данный пользователь.

  Ответить  
 
 автор: ols   (27.07.2008 в 02:25)   письмо автору
 
   для: ols   (27.07.2008 в 01:01)
 

о все, я разобрался! Trianon, спасибо Вам огромное! Тема закрыта!

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

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