Bild Random mit Datenbankabfrage

medico

Erfahrenes Mitglied
Hallo zusammen,

ich möchte folgendes realisieren, weiß aber nicht wo ich ansetzen muss.

Also ich habe eine Datenbank in der folgende Spalten sind:
id,bild, url

Nun habe ich auf meiner Homepage eine drei spaltige Tabelle und da möchte ich in jede Spalte ein Bild ausgeben lassen, das heißt mit den Daten aus der Datenbank.
Es soll sich natürlich nicht um drei gleich Bilder handeln, sonder eine wahrlose Auswahl aus der Datenbank. Diese soll sich beim neu aufrufen der Seite natürlich ändern.

Wie kann ich das am besten anstellen?

Vielen Dank schon mal für Eure hilfe.

Gruß Andi
 
Ein einfacher Weg Random einträge aus einer Datenbank zu bekommgen geht so:

  1. select count(*) machen um herauszufinden wieviele Bilder zur Verfügung stehen
  2. rnd() funktion verwenden um zahlen 1 bis [Bilderanzahl] zu generieren
  3. die gewonnen zahlen als LIMIT Parameter für die Select Abfrage verwenden LIMIT [randomzahl],1
 
Danke für die schnelle Antwort .-)

Ich habe jetzt mal was anderes ausprobiert und das scheint zu funktionieren.
Kann man das so machen?

PHP:
include ("inc/db.inc.php"); 
$result = mysql_query("SELECT * FROM banner ORDER BY rand() LIMIT 3",$db);
while ($daten = mysql_fetch_array($result)) { 
echo '<a href="http://'.$daten["url"].'" target="_blank"><img src="images/banner/'.$daten["banner"].'">';
}

Es wird zwar noch nicht in eine Tabelle ausgegeben, aber schon mal 3 Stück nebeneinander :)
 
Es ist etwas komplizierter als die rand() funktion in MySQL aber als ich das letzte mal damit geabeitet hatte waren von 20 aufrufen 15 identisch und es kahm nicht wirklich das feeling einer random ausgabe ,)

So würde ich es machen:

PHP:
<?
include ("inc/db.inc.php"); 
srand( ((int)((double)microtime()*1000003)) ); 

$done   = array();
$result = mysql_query("SELECT * FROM banner");
for($i=0;$i<3;$i++){
    // Bild finden das noch nicht verwendet wurde:
    do {
    	$pos = rand(0,mysql_num_rows($result));
    } while (in_array($pos, $done));
    $done[] = $pos;
    
    // Bild ausgeben lassen an random possition
    mysql_data_seek($result, $pos);
    $daten = mysql_fetch_array($result);
    echo '<a href="http://'.$daten["url"].'" target="_blank"><img src="images/banner/'.$daten["banner"].'">';
}
?>
 
Zurück