snifer
Новичок
Зависание цикла while на условии if
Здравствуйте.
Помогите решить проблему.
есть скрипт, который никак не хочет работать.
Выскакивает с ошибкой:
Fatal error: Maximum execution time of 10 (Время изменял до 500!, то же самое) seconds exceeded in I:\home\test\www\common.php on line 97
вот строки кода:
прошу помощи в решении данной проблемы.
Спасибо.
Здравствуйте.
Помогите решить проблему.
есть скрипт, который никак не хочет работать.
Выскакивает с ошибкой:
Fatal error: Maximum execution time of 10 (Время изменял до 500!, то же самое) seconds exceeded in I:\home\test\www\common.php on line 97
вот строки кода:
PHP:
while ( $user = mysql_fetch_array( $result ) )
{
$sqlQuery = "SELECT a.* FROM ".TIPS_TABLE." a, ".ACC_TIPS_TABLE." b WHERE a.id=b.tip_id AND group_id=".$user['group_id']." AND `access`=1";
if ( !( $result2 = mysql_query( $sqlQuery ) ) )
{
exit( mysql_error( )."<br>".$sqlQuery );
}
do
{
if ( $tip = mysql_fetch_array( $result2 ) )
{
$sqlQuery = "SELECT * FROM ".TABLES_TABLE." WHERE id=".$tip['table_id'];
if ( !( $result3 = mysql_query( $sqlQuery ) ) )
{
exit( mysql_error( )."<br>".$sqlQuery );
}
$row = mysql_fetch_array( $result3 );
$crypt = $row['crypt'];
$all_fields = sql_type_field( $tip['table_id'] );
$shablons = array( "{текущий}", "{новая запись}", "{измененная запись}", "{пустая дата}", "'{текущая дата}'", "'{текущее время}'" );
$replace = array( $user['id'], "u".$user['id']."=1", "u".$user['id']."=2", "0000-00-00 00:00:00", "concat(curdate(),' 00:00:00')", "now()" );
$condition = str_replace( $shablons, $replace, $tip['condition'] );
$sqlQuery = "SELECT * FROM ".DATA_TABLE.$tip['table_id']." WHERE status=0 AND ".$condition." AND r".$tip['id']."_u".$user['id']."<".time( );
if ( !( $result3 = mysql_query( $sqlQuery ) ) )
{
exit( mysql_error( )."<br>".$sqlQuery );
}
do
{
/*вот 97 строка*/ if ( $line = mysql_fetch_array( $result3 ) )
{
$shab_fields = array( );
$value_fields = array( );
foreach ( $all_fields as $one_field )
{
$field_id = $one_field['id'];
$shab_fields[] = "{".$one_field['name_field']."}";
if ( $crypt && strval( $line["f".$field_id] ) !== "" )
{
$value = decrypt( $line["f".$field_id] );
}
else
{
$value = $line["f".$field_id];
}
$value_fields[] = form_display_type( $one_field, $value, $line['id'] );
}
$message = str_replace( $shab_fields, $value_fields, $tip['message'] );
if ( $tip['head_on'] && $user['id'] == $cur_user['id'] )
{
$one_tip['tip_id'] = $tip['id'];
$one_tip['table_id'] = $tip['table_id'];
$one_tip['line_id'] = $line['id'];
$one_tip['message'] = $message;
$user_tips[] = $one_tip;
}
if ( $tip['email_on'] && $line["r".$tip['id']."_u".$user['id']] == "0" )
{
sendmail( "Напоминание (".$config['app_name'].")", $message, $user['e_mail'] );
$sqlQuery = "UPDATE ".DATA_TABLE.$tip['table_id']." SET r".$tip['id']."_u".$user['id']."=1 WHERE id=".$line['id'];
if ( !mysql_query( $sqlQuery ) )
{
exit( mysql_error( )."<br>".$sqlQuery );
}
}
}
} while ( 1 );
}
} while ( 1 );
}
Спасибо.