Цикл php while () внутри if / else не работает - PullRequest
2 голосов
/ 27 марта 2011

Я не понял, почему это не сработает!Мой запрос выполняется отлично во всех аспектах, но когда я добавил проверку if для значения $ row, эхо-сообщение идет как положено (если результатов нет), но остальное не сработает, если в моем запросе есть совпадение???Почему это не работает?Кто-нибудь, пожалуйста, ослабьте мою боль и поправьте меня !!

$row = mysql_fetch_array($result);
if (!$row) {
    echo "Sorry brah. Nothing matches your search criteria.";
} else {

$i = 1;
while($row = mysql_fetch_array($result)) {
    echo "$i - " . $row['first_name'] . " " .  $row['last_name'] . " - " .   $row['address'] . "<br />";
$i++;
    } 
}

Ответы [ 2 ]

9 голосов
/ 27 марта 2011
$row = mysql_fetch_array($result);  // this fetches the first row your result
...

в цикле while вы снова выбираете строку из результата.Что не будет работать, если у вас есть только одна строка в результате

использовать

if (mysql_num_rows($result) == 0) {
    echo "Sorry brah. Nothing matches your search criteria.";
} else {
    $i = 1;
    while($row = mysql_fetch_array($result)) {
        echo "$i - " . $row['first_name'] . " " .  $row['last_name'] . " - " .   $row['address'] . "<br />";
        $i++;
    } 
}
3 голосов
/ 27 марта 2011

попробуйте mysql_num_rows($result)==0 вместо этого в операторе if

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