Timbonet
Erfahrenes Mitglied
Folgendes Problem:
Ich habe 2 Tabellen, hier die relevanten Felder:
bilderstimmen: bild (Int), mitglied (varchar)
In dieser Tabelle werden bei Bildbewertungen der Mitgliedsname und die Bild-ID gespeichert (und ein bisschen mehr, ist aber irrelevant).
bilder: id (int)
Ich will jetzt aus bilder ein zufällig gewähltes Bild auslesen, das das Mitglied noch nicht bewertet hat.
Bisher verwende ich folgenden Code:
Dieser ist aber etwas, nunja, unperformant. Gibt es da eine Möglichkeit, die While-Schleife zu umgehen und alles in eine SQL-Abfrage zu packen?
Server ist MySQL 4.1.7.
Ich habe 2 Tabellen, hier die relevanten Felder:
bilderstimmen: bild (Int), mitglied (varchar)
In dieser Tabelle werden bei Bildbewertungen der Mitgliedsname und die Bild-ID gespeichert (und ein bisschen mehr, ist aber irrelevant).
bilder: id (int)
Ich will jetzt aus bilder ein zufällig gewähltes Bild auslesen, das das Mitglied noch nicht bewertet hat.
Bisher verwende ich folgenden Code:
PHP:
$result = safe_query("SELECT bild FROM bilderstimmen WHERE mitglied = '$username'");
$banlist = "";
while ($row = mysql_fetch_array($result)) $banlist .= " AND id!='$row[bild]'";
$id = mysql_result(safe_query("SELECT id FROM bilder WHERE 1 $banlist ORDER BY rand() LIMIT 1"),0,"id");
Dieser ist aber etwas, nunja, unperformant. Gibt es da eine Möglichkeit, die While-Schleife zu umgehen und alles in eine SQL-Abfrage zu packen?
Server ist MySQL 4.1.7.