2013-08-29 2 views
-1

Я получил ошибку «mysql_fetch_array(): предоставленный аргумент не является допустимым ресурсом результатов MySQL ...». В строках, которые относятся к этому запросу mysql.Ошибка: mysql_fetch_array(): предоставленный аргумент не является допустимым ресурсом результата MySQL

$result = mysql_query("select * from chat order by time desc limit 0,10"); 
$messages = array(); 

while($row = mysql_fetch_array($result)){ 

    $messages[] = "<div class='message'><div class='messagehead'>" . $row[name] . " - " . date('g:i A M, d Y',$row[time]) . "</div><div class='messagecontent'>" . $row[message] . "</div></div>"; 
    //The last posts date 
    $old = $row[time]; 
} 
//Display the messages in an ascending order, so the newest message will be at the bottom 
for($i=9;$i>=0;$i--){ 
    echo $messages[$i]; 
} 
+0

Я предполагаю, что ваш запрос не работает; но вы не проверяете это, и просто предположите, что это сработало. Вы должны проверять возврат из 'mysql_query' и обрабатывать его соответствующим образом; вы найдете полную информацию о проблеме в 'mysql_error'. – andrewsi

+0

Возможный дубликат [предоставленный аргумент не является допустимым ресурсом результатов MySQL] (http://stackoverflow.com/questions/7214280/supplied-argument-is-not-a-valid-mysql-result-resource) – mario

+0

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ) – Fracsi

ответ

1

Theres - ошибка в вашем запросе.

Попробуйте вывести сообщение об ошибке с mysql_error(), например .:

$result = mysql_query("select * from chat order by time desc limit 0,10") or die(mysql_error()); 

Это остановит сценарий и показать ошибку SQL.

0

Это значит, что ваш запрос не выполнен, в нем есть ошибка.

вы можете узнать, что ошибка с помощью mysql_error()

или

вы можете использовать

$row = mysql_num_rows($result); 
echo($row); 

увидеть, если она возвращает какое-либо значение. Если он возвращает 1 или значение> 1, это означает, что ваш запрос работает нормально, другой запрос не выполняется.

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

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