2013-06-14 3 views
-1

Я пытаюсь выяснить, почему num_rows всегда возвращает 1? Я искал высоко и низко, чтобы узнать, что я делаю неправильно здесь. Любая помощь была бы признательна! В моем запросе, где у меня есть status = '', который должен найти строки, где status is NULL правильный? Если это так, то счет должен быть 2.mysqli query всегда возвращает только 1 строку

$query = "SELECT * FROM referrals WHERE (status = 'W' OR status = '') AND referral_id = '".$thisId."'"; 
$result = $mysqli->query($query); 
$TotalRcount = $result->num_rows; 
while($row=$result->fetch_assoc()){ 
    //read columns 
} 

$inprogress =  $TotalRcount; 
echo $TotalRcount; // Always returning 1 
+0

Почему бы строка "NULL" возвращается. Можете ли вы показать содержимое простой базы данных, которая дает вам эту проблему? Не зная, что находится в вашей БД, трудно комментировать ... – Floris

+0

В основном столбец 'status' в каждой строке может иметь' NULL', если он еще не установлен. Сделать с тех пор? Я обновил свой вопрос, чтобы сделать лучше с :) –

+0

Ничего не соответствует NULL. См. Предыдущий вопрос/ответ: http://stackoverflow.com/questions/12853944/why-in-sql-null-cant-match-with-null – Floris

ответ

0

Ваше поле статуса может быть пустым или содержать в нем строку нулевой длины. Они не одинаковы.

Попробуйте (статус = «W» или статус < = «»)

0

Изменить запрос, чтобы проверить на нуль с IS NULL

$query = "SELECT * FROM referrals WHERE (status = 'W' OR status = '' OR status is null) AND referral_id = '".$thisId."'"; 

В то время как вы не можете проверить равенство нуль вы можете проверить, не определено ли поле.

0

Использование

$TotalRcount = mysqli_num_rows($result); 
Смежные вопросы