Zuffallswert aus DB

tschimo

Mitglied
Hallo zusammen

Ich habe eine DB produkt wo ich eine ID usw drin hab,

Ich möchte auf der Startseite einrichten , dass es immer 3 Artikel per Zufallsgenerator aus der DB ausliest. Ich hab schon die rand() funktion unter die Lupe genommen , komm aber nicht ganz draus wie ich das nun in meine SQL abfrage einbinden muss.

Gruss und danke im Voraus
 
Zuletzt bearbeitet:
Ich vermute mal, Deine Tabelle heißt Produkt und nicht die Datenbank?
Code:
SELECT * FROM Produkt ORDER BY RAND() LIMIT 3
Gruß hpvw
 
Du musst zuerst die Anzahl an Einträge in der DB rausbekommen.
Danach mach mit rand(); eine Zahl, und packe sie in eine Variable. Danach machst du die neue DB-Abfrage:

PHP:
$sql="SELECT * FROM `tabelle`";
$result=mysql_query($sql);

$rows=mysql_num_rows($result);
$rows=$rows-3; //um konflikte in der späteren Abfrage zu vermeiden

$random=rand(0,$rows);

$sql="SELECT * FROM `tabelle` LIMIT $random,3";
$result=mysql_query($sql);
//usw....

Hast dus dir so in etwa vorgestellt?
 
Hey

Ich würde das gar nicht explizit über einen "wirklichen" Zufall (sofern man davon sprechen kann bei Computern) gehen. Auf einer Seite hab ich auch eine art "zufallsanzeige" von Bannern. Sprich bei jedem Aufruf wird ein Banner "per Zufall" angezeigt.
Ich versuch dir zu erklären wie das skript , vielleicht wäre das auch was für dich, tschimo.

Füge eine weitere Spalte "Aufrufe" an die DB Tabelle an (oder nimm eine extra Tabelle - zwecks Normalform. Das ist deine Entscheidung). In dieser schreibst du rein, wie oft ein bestimmes Produkt angezeigt wurde. Bei jedem Seitenaufruf nimmst du EINEN Datensatz aus der DB-Tabelle und zeigst diesen an - im gleichen Zuge inkrementierst du den Wert in der Spalte "Aufrufe". Beim nächsten Seiten aufruf nimmst du wieder einen Datensatz aus der DB (aufsteigend sortiert nach der Häufigkeit der Aufrufe). Damit bekommst du ein anderes Produkt (Bzw ein Datensatz) der nicht so häufig aufgerufen wurde, die eines der anderen. So setzt sich das für jeden Seitenaufruf fort.

Ein beispiel:

Tabelle: (ID, Bildname, Aufrufe).
1, Banner1.jpg, 0
2, Banner2.jpg, 0
3, Banner3.jpg, 0

Beim ersten aufruf wird Banner1.jpg angezeigt. Inhalt der DB-Tabelle
1, Banner1.jpg, 1
2, Banner2.jpg, 0
3, Banner3.jpg, 0

Beim zweiten Aufruf wird Banner 2.jpg angezeigt. Inhalt der DB-Tabelle
1, Banner1.jpg, 1
2, Banner2.jpg, 1
3, Banner3.jpg, 0

....

Nach dem 10. Aufruf wird Banner1.jpg angezeigt.
Inhalt der DB Vor dem aufruf:
1, Banner1.jpg, 3
2, Banner2.jpg, 3
3, Banner3.jpg, 3

Danach wird inkrementiert:
1, Banner1.jpg, 4
2, Banner2.jpg, 3
3, Banner3.jpg, 3


Verstehste was ich meine?


//edit, LOL was fürn zufall, gleiche Uhrzeit gepostet @Vormir-Schreiber ;)
 
@hpvw: danke ich hab deine version genommen und funktioniert tip top

@nero_85 : danke auch dir für den code, es funktioniert super , hab aber di version von hpvw genommen da si einfach um einiges kürzer ist.

@pornex: danke für deinen Beitrag, die Idee ist echt gut! die muss ich mir merken für andere sachen in meiner HP

ich wünsch öich.
 
Zurück