Sie sind hier: Startseite -> MySQLi-Grundlagen -> select - Zufall

Select-Abfrage in MySQLi mit Zufallsmodus

Select-Abfrage mit Zufallsgenerator

Eine in Foren häufig gefragte Lösung ist jene, wie man eine select-Abfrage bei einer MySQLi-Datentabelle mit einem Zufallsgenerator verbinden kann. Denn die Situation, in der man unterschiedliche Produkte, Mitglieder, Teilnehmer oder ähnliche Informationen auf einer Webseite darstellen möchte, ist immer wieder gegeben.

Das Grundproblem ist, dass man verschiedene Angebote gleich oft anzeigen möchte. Wenn immer die gleiche Reihenfolge gegeben ist, wird das nicht gelingen. Daher ist eine zufällige Reihenfolge wünschenswert. Mit dem Zusatz rand() kann dies erfolgen.

Zufall bei Suchergebnisse mit rand() einschalten


Webhosting mit viel Software bei Alfahosting (Affiliate-Link)


Der Zufallsgenerator ist dabei ein neues Schlüsselwort, das sehr einfach eingesetzt werden kann. Der Aufruf könnte zum Beispiel so aussehen:

select * from adressen where where aktiv="1" order by rand() limit 20

Dabei werden alle Datensätze herausgesucht, bei denen die Adressen aktiv geschaltet wurden (aktiv = 1, inaktiv wäre der Wert 0) und dann werden per Zufallsgenerator 20 Abfragen herausgesucht. Der Zufallsgenerator ist durch "order by rand()" hergestellt, die Begrenzung kennen wir schon von den Ausführungen über das Schlüsselwort limit, das in diesem Fall den Wert 20 erhält, daher 20 Datensätze.

Wenn man die Daten verarbeitet und das Ganze auf den Server lädt, werden - wenn es mehr als 20 Informationen in der Datentabelle gibt - bei jedem Aktualisieren andere 20 Datensätze angezeigt. Natürlich werden die einzelnen Informationen immer wieder gezeigt, während andere weniger oft gezeigt werden, doch für einen schnellen Zufallseffekt reicht dieser eine Aufruf völlig aus.


Webhosting bei Alfahosting - jetzt gratis testen! (Affiliate-Link)


Eine solche Abfrage kann vor allem dort nützlich sein, wo man viel mehr Infos zu bieten hat als Platz finden kann. Das können Newsberichte sein, das können Auktionen, Kochrezepte oder was auch immer sein. Überall dort, wo man etwas Dynamik erzeugen möchte, kann ein Zufallsgenerator eine einfache und schöne Überraschung sein.

Lesen Sie auch

MySQLi basiert auf SQL und daher gibt es gar nicht so viele Befehle wie etwa in einer richtigen Programmiersprache, aber es gibt zu den Befehlen viele Zusätze, speziell bei der Abfrage mit select. Es gibt aber auch Befehle, die man kaum braucht und dazu gehört create zum Anlegen von Datenbanken und Datentabellen oder drop zum Löschen selbiger. Auch alter als Befehl zum Ändern wird selten benötigt.

Dann gibt es Anordnungen, die man sehr oft oder gelegentlich braucht, ganz nach Situation. Mit delete kann man Datensätze löschen und das ist in einem Skript immer wieder der Fall, etwa alte Statistikdaten. Und mit insert kann man neue Datensätze anlegen, zum Beispiel nach dem Eintragen im Geästebuch.

Der große Akteur auf Ebene der MySQLi-Datenbank auch von PHP aus ist der Befehl select. Er dient dazu, die vorhandenen Daten zu untersuchen und es gibt eine ganze Reihe an Möglichkeiten, wie dies erfolgen kann. Mit Filter, mit Begrenzungen oder auch mit verknüpften Kriterien, um die richtigen Datensätze zu finden. Selbst rechnen ist damit möglich.

Weitere Befehle gibt es mit Drop und Truncate, wobei Drop eine Tabelle komplett löschen kann oder auch Datenfelder aus einer Tabelle. Truncate leert die Tabelle, löscht also alle Datensätze. Diese Befehle nutzt man aber nicht in Skripte von außerhalb, sondern setzt sie direkt in phpMyAdmin bei der Verwaltung ein.

Themenseiten

Diesen Artikel teilen

Infos zum Artikel

Zufallsabfrage in MySQLiArtikel-Thema: Select-Abfrage in MySQLi mit Zufallsmodus
Beschreibung: Mit 📀 rand() kann man die select-Abfrage in MySQLi zu einer ✅ zufälligen machen, bei der willkürlich Datensätze ausgewählt werden.

Kategorien

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

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