2013-05-23 3 views
0

У меня есть тысяча адресов электронной почты в моей базе данных. Я хочу отправить им сообщение. Но каждый раз, когда я отправляю сообщение, выводит сообщение об ошибке «500 Internal Server Error». Тайм-аут запроса. Этот запрос занимает слишком много времени для обработки, он отключен сервером. Если он не должен истекать, обратитесь к администратору этого веб-сайта, чтобы увеличить его. 'Время соединения вышло".PHP - Продолжить выполнение другого цикла после выполнения цикла

Я установил maximum_execution_time, set_time_limit или другое что-то вроде этого на 0 (или неограниченное). В конце будет запрошен тайм-аут. Есть ли решение?

Мой код

<?php 
$query = mysql_query("SELECT * FROM user"); 
while($q=mysql_fetch_array($query)){ 
    // Send email to $q['user_email'] 
    echo "sent to ".$q['user_email']; 
} 
?> 

Могу ли я выполнить еще один цикл после успешного выполнения цикла без тайм-аута?

Возможно, что-то вроде этого?

<?php 
$query = mysql_query("SELECT * FROM user LIMIT 0,99"); 
while($q=mysql_fetch_array($query)){ 
    // Send email to $q['user_email'] 
    echo "sent to ".$q['user_email']; 
} 
//do another looping 
$query = mysql_query("SELECT * FROM user LIMIT 100,199"); 
while($q=mysql_fetch_array($query)){ 
    // Send email to $q['user_email'] 
    echo "sent to ".$q['user_email']; 
} 
?> 
+0

Да ... если ваш первый цикл работает, тогда ваша вторая должна также – Orangepill

+0

'set-time-limit' и другие не работают в' safe-mode'. См. [Руководство по PHP] (http://php.net/manual/en/function.set-time-limit.php) – furas

ответ

0

Я считаю, что существует проблема в set_time_out при циклировании.

Возможным решением является set_time_out (0) перед каждой итерацией.

Смежные вопросы