MySQLi PHP-Abfrage mit Zufallsgenerator

Zusatz rand() sorgt für überraschende Ausgaben

Eine schöne Lösung bei der select-Abfrage einer MySQLi-Datenbank besteht darin, dass man dem Zufall eine Basis bieten kann. Bisher haben wir alle Daten, bestimmte, gefilterte Daten oder bewusst reduzierte Daten geholt. Nun wollen wir per Zufallsgenerator agieren und damit für überraschende Ergebnisse sorgen.

Eine solche Lösung kann etwa bei Newsbeiträge Sinn machen, wenn man so viele Beiträge hat, dass es schade ist, wenn immer die gleichen fünf Artikel gezeigt werden. Mit einer Abfrage aus der Datenbank inklusive einer zufälligen Reihung kann man für eine kleine Dynamik sorgen und sein Angebot erweitern.

MySQLi-Abfrage mit Zufall unter PHP

$sql = "select * from adressen";
    if($result = $mysqli->query($sql)) {
    while($obj = $result->fetch_object()) {
                     echo "

".$obj->vorname." ".$obj->nachname."

";
                    }
    } else { echo mysqli_error($mysqli);exit; }

Der Ausgangspunkt ist die übliche Abfrage aller Adressen ohne Einschränkungen.

$sql = "select * from adressen order by rand() limit 20";
    if($result = $mysqli->query($sql)) {
    while($obj = $result->fetch_object()) {
                     echo "

".$obj->vorname." ".$obj->nachname."

";
                    }
    } else { echo mysqli_error($mysqli);exit; }

Die Erweiterung ist denkbar einfach und lautet order by rand() limit 20. order by wurde bisher als Sortierroutine genutzt und limit ist die Begrenzung der Anzahl der Ergebnisse. rand() ist das neue Zauberwort und steht für random also für eine zufällige Anordnung und damit ist eigentlich der Fall auch schon geklärt, weil von allen Adressen 20 herausgesucht werden sollen, die zufällig angeordnet sind. Wenn man davon ausgeht, dass es in der Datenbank 60 Adressen gibt, wird man bei einer Liste mit immer wieder aktualisierter Seite stets andere 20 Adressen in stets anderer Reihenfolge erleben.

Bei sehr vielen Nachrichten auf einem großen Portal kann dies eine Lösung ein, um für Artikel zu sorgen, die man sonst vielleicht gar nicht lesen wird können.

Lesen Sie auch

So richtig aus dem Vollen kann man dann schöpfen, wenn man die Programmiersprache PHP mit dem System der MySQLi-Datenbank verknüpft. Der SQL-Befehlssatz bleibt bestehen, wird aber durch die PHP-Umgebung ummantelt, damit beide kommunizieren können: die Datenbank weiß, was Sache ist und PHP versteht die Antwort. MySQL + PHP bedeutet, dass man direkt vom Skript aus auf die Daten zugreifen kann.

Die Grundvoraussetzung ist einmal das Anlegen einer Datenbank, was auch von PHP aus möglich ist und dann braucht es die Verbindung zur Datenbank.

Damit ist die Grundbasis gelegt und man kann Tabellen anlegen und die Daten speichern. Dabei kann mit mysqli_insert_id die aktuelle laufende Nummer für weitere Aktionen nützlich sein und wichtig ist das Verständnis mit mysqli_close, um nicht mehr gebrauchte Verbindungen zu beenden. Wichtig ist aber auch die richtige Schreibweise beim Arbeiten mit den Daten.

Das Herzstück ist aber die Abfrage. Zweifelsohne braucht man delete und andere Befehle auch, um zu manipulieren, aber mit select kann man verschiedenste Abfragen durchführen wie nach Kriterium, Menge oder auch als Stringabfrage samt Sortierungsangabe.

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel