zufällig vier bilder auswählen

Sebastian Wramba

Erfahrenes Mitglied
Hi Leute!

Wie kann ich zufällig vier verschiedene Logos aus der Datenbank auslesen?

So damit jeder Banner gleichmäßig angezeigt wird. (oder auch nicht... :-) )

Aber ehrlich gesagt, habe ich keine Ahnung wie ich anfangen soll. ;((
 
<?
$directory = "bilder/";
$handle = opendir($directory);
while ($file = readdir ($handle))
{if ($file != "." && $file != "..")
{$filecount++;}}
srand((double)microtime()*1000000); $zufall = rand(1,4);
echo "<img src=\"bilder/bild$zufall.jpg\" border=\"0\">";
?>
 
ich hab mal sowas programmiert für Banner, allerdings gibts da ein Problem: Du kannst nie sicher sagen, daß alle Banner gleich oft angezeigt werden. (die Random-Funktion verteilt nicht gleichmässig)

Ich hab das so gelöst: Ich hab eine Spalte hinzugefügt, in der mitgezählt wird, wie oft ein Banner angezeigt wurde. Dann lass ich in der SELECT-Anweisung nach dieser Spalte aufsteigend sortieren, sodaß als erstes Ergebnis immer der Banner kommt, der am seltensten angezeigt wurde.

Is zwar auf diese Art nicht wirklich zufällig, aber Du bekommst alle gleichmässig oft angezeigt ;)


Dunsti
 
Ich hatte mir auch sowas schon mal überlegt, ich denke, am einfachsten wäre es, du würdest jedem Bild eine ID zuweisen und diese dann zufällig (oder auch je nach Häufigekiet) auswählen.

FH
 
Dürfte so gehen:

PHP:
<?

$max = "3"; // hier die Anzahl der Dateien eingeben
$site = array("index.html","index2.html","index3.html"); // hier die Namen der Dateien



$max = $max--; // $max um 1 subtrahieren, da ein array bei 0 anfängt
srand(time()); // rand() eine Zahl vorgeben
$zahl = rand(0,$max); // Zufallszahl generieren und in $zahl speichern
$site = $site[$zahl];
header("Location: $site");

?>

bitte korrigieren, wenn was nicht stimmen sollte :)
 
das ganze soll auch direkt auf der index page passieren wie mache ich das aber am besten index.php denn script und die dahinter die seiten die dann von der php datei aufgerufen werden?
 
Das Script da oben leitet auf die neue Seite um, wenn du keine Umleitung haben willst, dann ersetze header ("Location: $site"); durch include($site);. Dann zeigt er die zufällig ausgesuchte Seite in der Datei an, in der das Script auch ist.
 
Zurück