PHP: Хотя цикл с массивом извлечения работает вечно?

0

Я пытаюсь отобразить все записи из базы данных, но это просто спам около 1000, пока он не достигнет 30 секундного таймаута. У меня только 3 записи в базе данных, не знаю, почему это делается?

while($news = $engine->fetch_array("SELECT * FROM 'cms_news' ORDER BY 'id' DESC"))
{
    echo 'lol<br>';
}

"lol" печатается сотни раз, прежде чем, наконец, тайм-аут (превышено время выполнения)

Вот функция fetch_array из класса $ engine:

final public function fetch_array($sql)
{
    $result = $this->connection->query($sql);
    return $result->fetch_array(MYSQLI_ASSOC);
}
  • 0
    Сколько у вас рядов? Стоит ли разбивать на страницы?
  • 6
    Как вы могли заметить, если вы печатаете что-то, относящееся к извлеченной строке, а не к случайной бессмыслице, из-за того, как написан fetch_array (первое, что он делает, это выполняет запрос), он всегда будет извлекать одну и ту же первую строку, пока не превысит свой лимит времени. ,
Показать ещё 3 комментария
Теги:
mysqli

1 ответ

1

Цикл while будет продолжать работать, пока это правда. Вам придется переключить логику того, как вы делаете что-либо или что вы пытаетесь достичь.

В вашем примере цикл while,

while($news = $engine->fetch_array("SELECT * FROM 'cms_news' ORDER BY 'id' DESC")) {

остается верным, поэтому он продолжает работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню