zufällige Datenbankausgabe

D

DanielK

Hallo,

habe folgendes Problem:
Ich habe auf www.lawpoint.de eine Datenbank, die auch problemlos Daten ausgibt, wenn man auf go klickt. Ich würde nun aber gerne die Einträge in zufälliger Reihenfolge ausgeben lassen bzw. die Anzahl der auszugebenden Einträge begrenzen. Wie macht man das?

Danke im Voraus für Euere Antwort!
 
Hi!

Welche Datenbank?(MySQL?)
Bei SQL-Abfragen kannst Du ein LIMIT setzen:

SELECT * FROM tabelle LIMIT 0,10

Die Werte für das Limit könntest Du vielleicht per Zufallszahlen berechnen, welche sich innerhalb der Gesamtzahl der Datensätze bewegen.
Mal so als Denkanstoss.

Welche Programmier-/Scriptsprache? (PHP, Java, Perl)
 
SELECT * FROM tabelle ORDER BY RAND() LIMIT 0,10

und so bekommste 10 zeilen zufällig aus der Datenbank
 
Und falls dir die Ergebnisse schlecht sortiert vorkommen:
PHP:
SELECT * FROM `tabelle` ORDER BY RAND(NOW()) LIMIT 0,10
 
Brauche Hilfe !

wenn ich den Befehl ORDER By rand() bei der Abfrage verwende, dann muss ich zB. auch auf der letzten Seite wissen welche News ich auf der ersten Seite ausgegeben hab.

d.h. ich weis zwar den Abfragebefehl aber nicht wie man das weiterverarbeitet.


Die Abfrage schaut so aus:

$result = sql_query("SELECT sid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories where catid='$catid' $querylang ORDER BY rand() DESC limit $offset, $storynum", $dbi);

while (list($s_sid, $aid, $title, $time, $hometext, $bodytext, $comments, $counter, $topic, $informant, $notes, $acomm, $score, $ratings) = sql_fetch_row($result, $dbi)) {
getTopics($s_sid);
formatTimestamp($time);
$subject = stripslashes($subject);
$hometext = stripslashes($hometext);
$notes = stripslashes($notes);
$introcount = strlen($hometext);
$fullcount = strlen($bodytext);
$totalcount = $introcount + $fullcount;
$c_count = $comments;
$r_options = "";

dann kommen die Ausgaben für Links und die Seitenangaben

Das Problem dürfte doch bei der Seitenaufbereitung liegen, da hier nochmals eine Abfrage kommt:

#Page Numbers ver1.4
#Page Numbers ver1.4.1 - add align=absmiddle for left/right arrows
#Page Numbers ver1.4.2
$res = sql_query("select * from ".$prefix."_stories where catid='$catid' $querylang", $dbi);
$numstories = sql_num_rows($res, $dbi);
$numpages = ceil($numstories / $storynum);
if ($numpages > 1) {
opentable();
echo "
$numstories Eintragungen ($numpages Seiten, $storynum per Seite)" ;

usw.

Da liegt die
Originaldatei

Danke im Voraus
humanix
 
Zurück