Datenbankausgabe zufällig durcheinander würfeln
Mortimer
- php
Hi
Ich möchte aus meienr Datenbank alle Werte ausgeben lassen und diese Sortierbar machen nach Namen, Eintragsdatum oder Zufällig!
Die ersten beiden Sortierarten verstehen sich von selber in der Umsetzung. Aber wie kann ich Alle(!) Einträge aus der DB in einer zufälligen Rheienfolge wiedergeben...
mfg
mortimer
Hi
Die ersten beiden Sortierarten verstehen sich von selber in der Umsetzung. Aber wie kann ich Alle(!) Einträge aus der DB in einer zufälligen Rheienfolge wiedergeben...
...ORDER BY rand();
Uli
...ORDER BY rand();
Uli
Ok.. Danke an euch beide.. häte ich vielleicht auch selber rausbekommen.. aber ich bin halt doch zu schusselig =/
Aber andere frage:
Wie bekommt ihr es hin manchmal andere Überschriften für eine Antwort zu benutzen oder (wie in diesem falle) dass du bei einer Antwort statt PHP dort DATENBANK hinschreiben konntest?
ciao
hi
ohne namen abschicken und dann kann man das thema ändern...
Uli
Hallo Ulrich,
ohne namen abschicken und dann kann man das thema ändern...
oder einfach die Vorschau verwenden ...
Grüße aus Nürnberg
Tobias
Danke! =)
fehlt nur noch ein cookie dass ich nicht immer namen und email angeben muss =)
ciao
Huhu mortimer
fehlt nur noch ein cookie dass ich nicht immer namen und email angeben muss =)
Das und noch mehr kannst Du über die benutzerspezifischen Einstellungen
erreichen.
Diese findest Du links oben.
Viele Grüße
lulu
Ich stelle gerade fest dass ich es nicht hinbekomme die ausgabe mit Dandom() und Limit über mehrere Seiten zu verteilen.
Ich habe knapp 120 Einträge bisher und es werden wöchentlich immer 100 mehr... daher muss ich es auf seiten auteilen...
Gibt es einen Trick dass ich es trotzdem zufällig ausgeben kann aber alle Einträge über mehrere Seiten verteilt werden können?
Meine Ideen:
PRo Seite werden 30 Einträge gezeigt.
Ich teile alle Ausgaben in 30er Blöcke (normale ausgabe ohne random) und schalte den zufallsgenerator nur unter den 30 Einträgen jeweils ein.
Leider nicht serh befriedigend weil kein zufall über alle einträge möglich ist.
Anders müsste es irgendwie gehen dass ich eine Art Unsichtbare Liste erstelle in die ich die Random-Sortierung schreibe... diesse dann in 30er Blöcke teile und Block für Block ausgebe.
Doch da weiss ich nicht wie.
Ich habe mal von eienr technik in PHP gehört mit der man solche "Unsichtbaren Listen" erstellen kann... weiss jemand mehr?
ciao
Hallo Mortimer,
Ich stelle gerade fest dass ich es nicht hinbekomme die ausgabe mit Dandom() und Limit über mehrere Seiten zu verteilen.
das geht afaik nicht, da RAND() bei jedem Query (also auf jeder Seite) einen anderen Wert gibt.
Gibt es einen Trick dass ich es trotzdem zufällig ausgeben kann aber alle Einträge über mehrere Seiten verteilt werden können?
afaik, nein, du wirst schon die Datensätze nach einer Spalte sortieren müssen - was imho auch wesentlich sinnvoller ist: wie soll man denn in einer Liste was finden, wenn die Datensätze nach keinem Kriterium sortiert sind?
Grüße aus Nürnberg
Tobias
yo,
das geht afaik nicht, da RAND() bei jedem Query (also auf jeder Seite) einen anderen Wert gibt.
es sein denn, die funktion bildet den zufallswert anhand eines festen wertes, welcher der funktion als paramter beim aufruf übergeben werden kann. in diesem fall wäre es möglich, einen wert von der zeit abzuleiten und diesen einmal ermittelten wert von einem seitenaufbau zum anderen zu übergeben, so dass imer die gleiche ausfall der datensätze zustande kommen würde, aber zu unterschiedlichen zeiten ein anderes ergebnis zur folge hätte.
Ilja
Hallo Ilja,
das geht afaik nicht, da RAND() bei jedem Query (also auf jeder Seite) einen anderen Wert gibt.
es sein denn, die funktion bildet den zufallswert anhand eines festen wertes, welcher der funktion als paramter beim aufruf übergeben werden kann.
stimmt, das könnte gehen - RAND() hat einen optionalen Parameter: http://dev.mysql.com/doc/mysql/de/Mathematical_functions.html#IDX1221
Grüße aus Nürnberg
Tobias
Huhu Mortimer
Aber wie kann ich Alle(!) Einträge aus der DB in einer zufälligen Rheienfolge wiedergeben...
Ich vermute mal Du benutzt MySQL.
Da kann man einfach
ORDER BY rand()
benutzen.
Viele Grüße
lulu