У меня есть следующий код php:
<?php if (!isset($_REQUEST['search'])){ while(($write=mysql_fetch_array($gamesearched)) != null){ echo "Found!"; }else{ echo "No results"; } } ?>
И это дает мне ошибку:
Ошибка анализа: синтаксическая ошибка, неожиданное «else» (T_ELSE) в C: \ php \ www \ Gameplay \ backgame.php в строке 41
В 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"; }
В этом случае я просмотрел общее количество строк, найденных до начала, но я мог бы также начать с установки счетчика на ноль и затем увеличения его в цикле while. Это будет выглядеть примерно так:
$total = 0; while (($write=mysql_fetch_array($gamesearched)) !== false) { $total++; echo "Found!"; } if ($total == 0) { echo "No results"; }
Обратите внимание: mysql_fetch_array()
возвращает false
если больше нет строк, поэтому я также обновил условие while.
Все, что сказано, есть веские причины не использовать функции mysql_*
в новом коде. См. Этот вопрос для получения более подробной информации и некоторых лучших альтернатив: Почему я не должен использовать функции mysql_ * в PHP?
PHP не поддерживает else
выражения while
. Вместо этого вам нужно будет использовать часовую.
Где ваш, if
??? Вам не хватает IF
Также обратите внимание, что структура if / else выглядит следующим образом: if() {} -> else {}
Вы все еще не заняты иначе, должны быть вне оператора if.
Наверное, вы упустили закрытие скобки. См. Возможные правильные коды ниже.
if (!isset($_REQUEST['search'])){ while($write=mysql_fetch_array($gamesearched)){ if($write != null) { echo "Found!"; }else{ echo "No results"; } } }
вif (!isset($_REQUEST['search'])){ while($write=mysql_fetch_array($gamesearched)){ if($write != null) { echo "Found!"; }else{ echo "No results"; } } }
или
while(($write=mysql_fetch_array($gamesearched)) != null){ if (!isset($_REQUEST['search'])){ echo "Found!"; } else { echo "No results"; } }
1)
if(xxxx){ //do if }else{ //do else }
2)
if(1): echo '123'; else: echo '456'; endif;