Zufallsbild mit MySQL

In dem Abschnitt, wo das Bild erfolgreich hochgeladen wurde, also
PHP:
if(empty($err)) { 
    copy("$tempname", "$name"); 
    echo "Die Datei $name wurde erfolgreich hochgeladen!"; 
}
muss der Datenbankeintrag mit rein.

Um einen zufälligen Eintrag aus der Datenbank zu ermitteln, bietet sich eine Anfrage in der Form
Code:
"SELECT * FROM `bilder` ORDER BY RAND() LIMIT 1"
an.

MfG
 
Das macht die Sache natürlich etwas komplizierter ;)
Du brauchst grundlegend natürlich erstmal eine DB dazu, wovon ich aber ausgehe.
PHP:
$dblink = mysql_connect($host,$user,$pass) or die(mysql_error()); // baut die Verbindung zur DB auf
mysql_select_db($dbname) or die('DB "'.$dbname.'" existiert nicht'); // wählt die DB aus
$result = mysql_query($sql) or die('SQL-Fehler!<br />'.mysql_error()); // führt eine Abfrage durch
In der Datenbank brauchst du nun eine Tabelle, in der die Bildnamen gespeichert werden sollen, die, einfach gehalten, nur 2 Spalten hat, nämlich "id" und "bildname".
"id" vom Typ INT, Primärschlüssel und dem Extra "Auto-Increment" (In phpMyAdmin erstellen), "bildname" vom Typ VARCHAR mit einer Länge von sagen wir mal 20 Zeichen, was für die Bildnamen locker reichen sollte.
Wenn das alles steht, kannst du dein Uploadscript erweitern, dass der Eintrag erstellt wird:
PHP:
if(empty($err)) { 
    copy("$tempname", "$name"); 
    $dblink = mysql_connect($host,$user,$pass) or die(mysql_error()); // natürlich die Verbindungsdaten angeben, müssen nicht aus einer Variable stammen
    mysql_select_db($dbname) or die('DB "'.$dbname.'" existiert nicht'); // deine Datenbank auswählen
    $sql = "INSERT INTO `tabellenname` (`id`,`bildname`) VALUES ('','".$name."')";
    mysql_query($sql);
    echo "Die Datei $name wurde erfolgreich hochgeladen!"; 
}
Das erweitert deine Tabelle nun um eine Zeile, in der der Name des Bildes gespeichert wird. Bei "id" wird kein Wert angegeben, dieser wird automatisch durch die "Auto-Increment"-Funktion mit dem nächst höheren, noch nicht vergebenen Wert belegt.
In diesem Fall brauchen wir die Funktion mysql_query keiner Variable zuweisen, da wir keine Daten Daten von der DB abfragen, sondern nur welche eintragen!
Nun hast du eine Datenbanktabelle, in der die Bildnamen abgelegt werden.

Zur (zufälligen) Ausgabe:
Das kannst du im Prinzip da in dein Script packen, wo du die Ausgabe des Bildes haben willst
PHP:
// zunächst muss wieder eine Verbindung zur DB bestehen , also mysql_connect etc.
// diesmal wollen wir Daten aus der DB haben (den Bildnamen), also sieht der SQL-Ausdruck folgendermaßen aus:
$sql = "SELECT `bildname` FROM `tabellenname` ORDER BY RAND() LIMIT 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result); // Erzeugt ein Array, in dem die angeforderten Daten stehen
echo '<img src="'.$row['bildname'].'" />'; // gibt den HTML-<img...>-Tag aus, in dem der Bildname, der zufällig aus der Datenbank ausgewählt wurde, steht

Hoffe hab jetzt nichts wichtiges vergessen, wenn du nicht klarkommst frag einfach ;)
Hier finden sich in der Tutorials-Sektion jede menge Tutorials, denen du entnehmen kannst, wie man mit Datenbanken arbeitet, falls du da mehr wissen möchtest.

MfG
 
Zurück