PHP4-Forum
Forum | Befehle | MySQL | Beispiele | Newsletter | Suche | Home

Untermenü

Beispiele
Datenbankbasiert
Dateibasierte
Spiele
Sonstige

Zu dieser Seite

Datenbankbasiert
Telefonbuch
Backup einer DB
Import: Datei => DB
Artikelverwaltung
Benutzer-Login
Gästebuch
Newsletterversand
User-Online
Zufällige Auswahl
Forum Software
Newsletter
Login (PHP Modul)
Umfrage
Zufällige Ausgabe eines Spruches aus einer Datenbank

Download | Testen

Dies ist ein Beispiel, wie Sie aus einer MySQL-Tabelle einen zufälligen Datensatz auswählen. Für die Allgemeinheit haben wir eine "Spruch" - Datenbank erstellt. Die Funktionalität ist recht einfach. Nachdem alle Zeilen in der Tabelle gezählt sind, schaltet sich der Zufallsgenerator, der eine Zahl liefert. Die Zahl ist eine Zeile aus der Tabelle. Diese Zeile wird ausgelesen und ausgegeben.

Nun erstellen Sie bitte die "Spruch" - Tabelle
CREATE TABLE spruch (
   nr smallint(5) unsigned DEFAULT '0' NOT NULL auto_increment,
   spruch varchar(255) NOT NULL,
   autor varchar(100) NOT NULL,
   PRIMARY KEY (nr)
);


Um das Beispiel testen zu können sammelten wir ein paar Sprüche für Sie:
INSERT INTO spruch (spruch,autor) VALUES ('Schriftsteller bauen Luftschlösser, Leser wohnen darin, und Verleger ziehen die Miete ein.', 'Maxim Gorki'), ('Schlaflosigkeit lässt sich durch Arbeit überwinden.', 'Sprichwort aus Spanien'), ('Chancen erkennt man oft nicht auf den ersten Blick.', 'Catherine Deneuve'), ('Wer gegen den Strom schwimmt, braucht Rückenwind.', 'unbekannt');


Und nun kommt das Beispiel. Das ist eine Funktion, die beim Aufruf einen Spruch liefert:
<?php
  function spruch() {
    // Einstellungen
    $HOST = "localhost";
    $ID = "root";
    $PW = "";
    $DB = "test";
    $tabelle = "spruch";


    // MySQL Connect
    $conn_id = mysql_connect($HOST,$ID,$PW);
    mysql_select_db($DB,$conn_id);

    // Ermittelt Gesamtanzahl der Srpüche in der DB
    $result = mysql_query("SELECT count(*) FROM ".$tabelle);
    $gesamt = mysql_result($result,0);

    // Schaltet den Zufallsgenerator ein
    mt_srand(time());
    // Wählt eine Zufallsnummer für eine Zeile aus
    $zeile = mt_rand(0,$gesamt-1);

    $result = mysql_query("SELECT spruch, autor FROM $tabelle");
    mysql_data_seek($result,$zeile); // Sprung zur Zeile
    $row = mysql_fetch_row($result);
    $ausgabe = "Spruch von: ".$row[1]."<br>\n";
    $ausgabe .= $row[0]."<p>\n";
    mysql_free_result($result); // Speicherfreigabe
    return $ausgabe;
  }

  // Aufruf der Funktion
  echo spruch();
?>


Ab MySQL Version 3.23 gibt es eine neue Funktion RAND(). Mit dieser Funktion können Sie direkt einen zufälligen Datensatz auswählen. Ein Query könnte beispielsweise so aussehen:
mysql_query("SELECT spruch, autor FROM $tablle ORDER BY RAND() LIMIT 0,1")
Dienstleistungen | Werbung | Impressum | Sitemap | Kontakt | Email © 1999 - 2009 | Last Update: 10.06.2001