пустая страница с большими циклами

Я делаю запрос по базе данных с более чем 20-миллиметровыми записями, что означает, что я разбиваю запрос на несколько меньших запросов.

Проблема в том, что если я попытаюсь извлечь записи 20MM, страница не загружается и отображает пустой экран без заголовка и содержимого. Однако, если я получаю записи 5MM, страница действительно загружается правильно и отображает содержимое:

Вот мой код

for($n=0; $n<20000000; $n=$n+500000){ $m=500000; $query = "SELECT * FROM user_likes LIMIT ". $n .",". $m; //echo $query; $result = mysql_query($query) or die(mysql_error()); // craete arrays while($row = mysql_fetch_array($result)){ set_time_limit(0); $like[$row['name']]=$like[$row['name']]+1; if($like[$row['name']]==375) $likes375 ++; } } // print the size echo count($like)."<br>"; echo "375: ".$likes375; 

Буду признателен, если кто-то сможет мне помочь. благодаря

РЕДАКТИРОВАТЬ:

после добавления error_reporting(E_ALL); он отображает это уведомление: сервер MySQL ушел

Solutions Collecting From Web of "пустая страница с большими циклами"

Причина этого в том, что ваша страница будет пустой, а MySQL хрустнет по индексу, ища ваши результаты. Через некоторое время это закончится (в зависимости от ваших настроек). Вот почему это происходит не на небольших запросах.

Это связано с ограничением времени выполнения скриптов php, по умолчанию скрипт php будет работать в общей сложности за 45 секунд до истечения времени ожидания …

Просто используйте это после <?php

 set_time_limit(0); // 0 means unlimited 
  • но использовать его не рекомендуется, лучше улучшите свою логику как в логике базы данных, так и в php.

РЕДАКТИРОВАТЬ:

попробуйте установить журнал ошибок для этого файла, выполнив следующие действия:

 ini_set("log_errors" , "1"); ini_set("error_log" , "eorrors.txt"); ini_set("display_errors" , "0");