Mysql не считает строки дат из моего PHP-скрипта - PullRequest
0 голосов
/ 25 апреля 2011

Я пытаюсь подсчитать количество дат, которые встречаются для определенного mem_id, однако мой результат вывода всегда равен "0" ... вот мой код:

$datechecker = $postdate; 
//$postdate is a date variable that is posted via a form into mysql, stored as a DATE

$sql = mysql_query("SELECT * FROM members WHERE mem_id='$id' AND postdate='$datechecker'");
$Counter = mysql_num_rows($sql); 
if($Counter >= 0) {
echo "$datechecker $Counter";
exit();
}

Это вывод, который я получаю: 2011-01-01 0

Несмотря на то, что у меня есть около 10 вхождений 2011-01-01, почему мой счет говорит «0»? Может кто-нибудь помочь мне решить эту проблему или предоставить альтернативу?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2011

1) Вы не очистили $ postdate, кто знает, соответствует ли оно определению MySQL для DATE?

2) Вы не показали нам, как выглядит ваша таблица участников. Является ли mem_id первичным ключом? Если это так, то, конечно, вы получите 1 строку из этого.

3) Вы не проверяете, успешно ли выполняется ваш запрос, вы сразу же передаете resource_id в таблицу mysql_num_rows, что в любом случае является неправильным способом подсчета, поскольку MySQL (как и любая другая реляционная база данных) имеет встроенные механизмы подсчета строки на основе критериев.

Я предполагаю, что ваш запрос не выполнен, поскольку не указан $ id.

0 голосов
/ 25 апреля 2011

выводит строку перед тем, как вы отправите mysql_query, она будет проверена, если запрос соответствует ожидаемому. Вы также можете использовать count (*) в запросе, вместо использования mysql_num_rows () * в php

Я также надеюсь, что вы очищаете свои данные, прежде чем запрашивать их!

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