KomischesProblem bei Datenbankabfrage

Shorek

Grünschnabel
Aloha zusammen!
Ich habe ein komisches Problem bei einer Datenbankabfrage:
Erst mal der Code:
PHP:
 $result = mysql_query("SELECT * FROM links ORDER BY RAND()",$db);

$i = 0;
echo"<table width='100' border='0'><tr>"; // Tabellenkopf
while ($myrow = mysql_fetch_row($result)) //Schleife (line 104)
{
printf("<td align='center'><a href='%s' target='_blank'><img src='%s' border='0'></a></td> ", $myrow[0], $myrow[1], $myrow[2]); 

    if ( !( ( $i + 1 ) % 4) ) {echo "</tr><tr>";} // Nach 4 Ergebnissen, neue Zeile
    $i++;

}
echo"</table>"; // Tabellenende
?>

In der Datenbank stehen Links und die URL zu Buttons die dann in einer Tabelle angezeigt werden.
Bei mir auf dem PC klappt das auch wunderbar, es kommt kein Fehler und alles wird so angezeigt wie es soll.

Wenn ich das ganze nun auf meinen Webserver schiebe kommt folgende Meldung:
Warning: Supplied argument is not a valid MySQL result resource in knetv4/links.html on line 104

Line 104 ist die reihe mit der Schleife.
Weiß jemand da Rat?!
Vielen Dank schon mal :)
...und ich dachte schon "jetzt musse dat moped nur noch online stellen"...#
Ciao
 
mysql_query()==false (query ungültig oder syntaktisch falsch), somit hab ich momentan nur eine loesung.. -> mysql_error(); ...damit wuerde dein fehler angezeigt (zumindestens sollte es so sein).. ansonsten scheint alles in ordnung mit deinem script.
 
Warning: Supplied argument is not a valid MySQL result resource in ....

ist eine typische Fehlermeldung wenn keine Daten vorliegen

Bedeutet in deinem fall:
deine Verbindungsdaten überprüfen (server,user,password,dbname)
überprüfen - die sind wrscheinlich falsch..
 
Meiens Wissens gibts nur ASC und DESC für ORDER BY.
Es solte dann so aussehen: ORDER BY [Spalte] [ASC/DESC]

Anscheinend funktionierts aber. Siehe:
http://www.php-resource.de/forum/showthread.php?threadid=20847

Mich wundert nur das:
echo"...".
Schreib doch mal ein Leerzeichen dazwischewn. Machts auch einfacher zum Lesen.

Bei printf("<td align='center'><a href='%s' target='_blank'><img src='%s' border='0'></a></td> ", $myrow[0], $myrow[1], $myrow[2]); sind insgesamt 4 Argumente drin. im String (1. Argument) aber nur 2x %s.

Müsste das nicht etwa so heißen:
printf("<td align='center'><a href='%s' target='_blank'><img src='%s' border='0'></a></td> ", $myrow[0], $myrow[1]);
 
@ melmager:
Jop genau das wars :rolleyes:
Hatte vergessen den Datenbanknamen anzupassen ...

Also das ORDER BY RAND() funktioniert prima. Da gibt überhaupt keine schwirigkeiten... :)

Und mit dem Argument zuviel erklärt sich so:
In der Tabelle hab ich noch ne Spalte namen ID, mit der ich jedem Eintrag eine Nummer zuweise. Die brauch(t)e ich für ein Linksystem...was ich aber im moment nicht nutze ;)
Und wenn ich das Argument weglasse sagt er mir immer, dass ein Argument fehlt.
Von daher, lass ich dat dingen mal drinnen, stört ja keinen :-)

Danke auf jedenfall für die schnelle Hilfe
Bis denne
Shorek
 
Zurück