De volgende mysql query leverd een fout melding op:

Query:
<?php
$sql = "SELECT * FROM `pages` ORDER BY `spider_date` ASC LIMIT 5";
$result = mysql_query( $sql ) or die(mysql_error());

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

error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Wat is hier aan de hand?
Alle velden zijn correct... rare is dat er wel één resultaat word gegeven.
maar lopen door de 5 gevraagde resultaten werkt niet... dus aan het eind van de eerst resultaat en start van de tweede geeft hij de error.

whatsup?
Dat komt omdat er een fout in de query zit.

$result is gelijk aan boolean false.

Na dat je de query uitvoert kun je het beste dit doen:

<?php
...

if( $result === false )
{
echo 'Query FOUT!';
// ook nog wat error info functies.
exit;
}
...
?>

edit:

Uiteraard moet je op een live site niet je script met exit afbreken.
Martijn heeft niet echt helemaal gelijk...
Idd $result is gelijk aan boolean false.
Maar $result = mysql_query( $sql ) or die(mysql_error()); moet genoeg zijn...

Probeer eens LIMIT 0,5
mmm.. dat is interesant..
Hij blijft de error laten zien.

$result is blijkbaar niet FALSE.

hier gaat het mis: <?php while( $row = mysql_fetch_array( $result ) ) { ?>

Doe ik de query in phpMyadmin uitvoeren dan werkt het wel.

in de while loop lijkt het mis te gaan...
PS.. LIMIT 0,5 geeft dezelfde error.
Dat is niet echt de beste methode om een error af te vangen. Ten eerste is het niet netjes om bezoeker te trakteren op een error. En ten tweede biedt dit info voor kwaad willen de bezoekers.
De error die jij krijgt is ook een php error, geen mysql...
Ik weet niet of het helpt maar probeer dit eens:
<?php
$sql = "SELECT * FROM pages ORDER BY spider_date ASC LIMIT 0,5";
$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($result)) {
//je while zooi
}
?>
En begin je script altijd met:

<?php
    ini_set ('display_errors', 1);
    error_reporting (E_ALL);
?>
Flip!

Het mag allemaal niet baten..
code van YPM niet
error reporting niet...

*HUIL*
Wat heb je nu?
Nu:
<?php
$sql = "SELECT * FROM pages ORDER BY spider_date ASC LIMIT 0,5";
$result = mysql_query( $sql ) or die(mysql_error());


while( $row = mysql_fetch_array($result, MYSQL_ASSOC )) {
echo 'DEBUG: START NEW FETCH SESSION !!! <br />';
echo 'DEBUG: fetched url: '.$row['id'].' <br />';

... more stuff ...
}
?>

Resultaat:

DEBUG: START NEW FETCH SESSION !!!
DEBUG: fetched url: 426

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... on line 23

Reageren