В PHP while
заявление не может иметь else
положение. Вам нужно что-то внешнее для while
, которое может сказать вам, было ли оно выполнено хотя бы один раз.
Как насчет чего-то подобного?
$total = mysql_num_rows($gamesearched);
if ($total > 0) {
while (($write=mysql_fetch_array($gamesearched)) !== false) {
echo "Found!";
}
} else {
echo "No results";
}
В этом случае, я посмотрел вверх общее количество строк, найденных перед тем, как начать, но я также мог бы начать путем установки счетчика на нуль, а затем увеличивая его внутри цикла. Это будет выглядеть примерно так:
$total = 0;
while (($write=mysql_fetch_array($gamesearched)) !== false) {
$total++;
echo "Found!";
}
if ($total == 0) {
echo "No results";
}
Обратите внимание, что mysql_fetch_array()
возвращает false
, если нет больше строк, поэтому я обновил условия, а для вас.
Все, что сказано, есть веские причины не использовать функции mysql_*
в новом коде. Смотрите этот вопрос для более подробной информации, а также некоторые лучшие альтернативы: Why shouldn't I use mysql_* functions in PHP?
Потому что это не действует синтаксис ... 'else' может работать в паре только с 'if'. – DCoder
Отредактируйте тему, пожалуйста, прочитайте код еще раз (?) –
У вас все еще есть 'else' в паре с' while', а не с 'if'. – jcsanyi