Есть форум (phpbb), временами когда заходишь он выдает ошибки: Код (Text): Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\WEB\Apache\htdocs\db\mysql4.php on line 339 Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\WEB\Apache\htdocs\db\mysql4.php on line 525 Template->loadfile(): No files found for handle body Так вот пытаюсь разобраться в сущности первой: mysql4.php Код (Text): function sql_fetchrow($query_id = 0) { $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $starttime = $mtime; if( !$query_id ) { $query_id = $this->query_result; } if( $query_id ) { /* 339 строка */ $this->row[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC); $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime; $this->sql_time += $endtime - $starttime; return $this->row[$query_id]; } else { $mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $endtime = $mtime; $this->sql_time += $endtime - $starttime; return false; } } Что делает $this->row[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC); как я понимаю приравнимавие массива к mysql_fetch_array($query_id, MYSQL_ASSOC); и что есть $query_id Спасибо!
mysql_fetch_array -- Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба. supplied argument is not a valid MySQL result resource - переданный аргумент это направильный mysql результат - такое может быть когда нет связи с базой или это программное ?
Вызывается она в скрипте дважды и оба раза в циклах: PHP: // Start page proper if( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql); } $category_rows = array(); while ($row = $db->[b]sql_fetchrow[/b]($result)) { $category_rows[] = $row; } $db->sql_freeresult($result); if( ( $total_categories = count($category_rows) ) ) { // Define appropriate SQL switch(SQL_LAYER) { default: $sql = "SELECT f.*, p.post_time FROM (( " . FORUMS_TABLE . " f LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )) ORDER BY f.cat_id, f.forum_order"; break; } if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql); } $forum_data = array(); while( $row = $db->[b]sql_fetchrow[/b]($result) ) { $forum_data[] = $row; } $db->sql_freeresult($result);