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 - 2013 | Last Update: 10.06.2001