Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 
Script Seite

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog Verzeichnis

Partner
Sprüche Treff

Goneo.de
Bei diesen Anbieter bekommt man Webspace, Domains,...
http://www.Goneo.de
speicherzentrum.d...
Bei den Anbieter bekommt man Webspace, Domains und...
http://www.speicherzentrum.de
 
 
 

Per Zufall zwei Mysql Tabellen abfragen

Sie befinden sich: Home > Php Tutorial > Per Zufall zwei Mysql Tabel...

Per Zufall zwei Mysql Tabellen abfragen



Eintrag am:  02.12.2009
Hits / Besucher:  3619
Sprache: Deutsch
Kategorie:  Fortgeschrittene Tut...
Tutorial Art:  eigenes
 

Beschreibung


In diesem PHP Tutorial möchte ich ihnen erklären, wie sie per Zufall zwei MySQL Tabellen abfragen können. Dieses Tutorial habe ich geschrieben, da in unserem Forum zu dieser Thematik eine Frage gestellt wurde. Die Anwendungsbeispiele sind Recht vielseitig und man könnte unterschiedliche Skripte zu dieser Thematik veröffentlichen. In diesem Beispiel gehe ich ausschließlich darauf ein wie man per Zufall zwei unterschiedliche Tabellen ansteuert. Man könnte natürlich auch zwei unterschiedliche Datenbänke mit diesem Script abfragen.

Als erstes müssen wir über den PHPMyAdmin zwei Tabellen anlegen, die sie abfragen möchten. Nachfolgend finden sie eine entsprechendes SQL Statement, was sie einfach in das SQL Fenster in PHPMyAdmin einfügen müssen. Danach wird automatisch, die zwei unterschiedlichen Tabellen angelegt.

Das SQL Statement:

--
-- Datenbank:
`zufall_test`
--
 
-- --------------------------------------------------------
 
--
-- Tabellenstruktur für Tabelle `datenbank1`
--
 
CREATE TABLE IF NOT EXISTS `datenbank1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
    `datenbank` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 2 ;
 
--
-- Daten für Tabelle `datenbank1`
--
 
INSERT INTO `datenbank1` (`id`, `datenbank`) VALUES
(1, 'Daten von Tabelle: datenbank1');
 
-- --------------------------------------------------------
 
--
-- Tabellenstruktur für Tabelle `datenbank2`
--
 
CREATE TABLE IF NOT EXISTS `datenbank2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
    `datenbank` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 2 ;
 
--
-- Daten für Tabelle `datenbank2`
--
 
INSERT INTO `datenbank2` (`id`, `datenbank`) VALUES
(1, 'Daten von Tabelle: datenbank2');
 

Nachdem wir die zwei Tabellen angelegt haben kommen wir zum Script. Nachfolgend finden sie das Script womit man auf zwei unterschiedliche Tabellen zugreifen kann. In diesem Beispiel sehen sie die MySQL Zugangsdaten von meinen lokalen Server. Diese Daten müssen sie natürlich, an ihren anpassen.

Das Script:

<?php
    
/**
    * Daten von der ersten Datenbank
    */
     
    /**
    * Der Host von der ersten Datenbank
    */
    
$host['1'] = 'localhost';
    
/**
    * Der MySQL User von der ersten MySQL-Datenbank
    */
    
$user['1'] = 'root';
    
/**
    * Das Passwort für den MySQL User der ersten MySQL-Datenbank
    */
    
$passwort['1'] = '***';
    
/**
    * Die erste Datenbank worin die Tabelle gespeichert ist
    */
    
$datenbank['1'] = 'zufall_test';
    
/**
    * Name der Tabelle
    */
    
$table['1'] = 'datenbank1';
    
/**
    * ###################################
    */
    /**
    * Daten von der zweiten Datenbank
    */
     
    /**
    * Der Host von der zweiten Datenbank
    */
    
$host['2'] = 'localhost';
    
/**
    * Der MySQL User von der zweiten MySQL-Datenbank
    */
    
$user['2'] = 'root';
    
/**
    * Das Passwort für den MySQL User der zweiten MySQL-Datenbank
    */
    
$passwort['2'] = '***';
    
/**
    * Die zweite Datenbank worin die Tabelle gespeichert ist
    */
    
$datenbank['2'] = 'zufall_test';
    
/**
    * Name der Tabelle
    */
    
$table['2'] = 'datenbank2';
    
/**
    * Als nächstes ermitteln wir in der Variable $host die
        Anzahl der unterschiedlichen host, in unserem Beispiel
        müsste die Zahl 2 sein mit der Funktion count(), danach
        wird mit rand() die Variable $zufall_key befüllt.
    */
    
$zufall_key rand(1count($host));
    
/**
    * Nachdem wir eine zufällige Datenbank ausgewählt haben,
        erstellen wir eine Verbindung zu unserer MySQL Datenbank.
    */
    
$db mysql_connect($host[$zufall_key], $user[$zufall_key],
        
$passwort[$zufall_key]) or die ("Es konnte keine
        Verbindung zur Datenbank hergestellt werden!"
);
    
/**
    * Wenn wir eine Verbindung erfolgreich hergestellt haben,
        werden wir mit dem PHP Befehl mysql_select_db() die
        entsprechende Datenbank aus.
    */
    
$db_selected mysql_select_db($datenbank[$zufall_key], $db);
    
/**
    * Nun bauen wir unser SQL Statement zusammen, womit wir eine
        Abfrage an die Datenbank stellen möchten.
    */
    
$sql_select "SELECT id, datenbank FROM
        `"
.$table[$zufall_key]."`;";
    
/**
    * Mit der PHP Funktion mysql_query() senden wir unserer
        Abfrage an die offene MySQL Verbindung. Und speichern
        die  resource in der Variable $query.
    */
    
$query = @mysql_query($sql_select) or die('Mysql Fehler:
        '
.mysql_errno());
    
/**
    * Mit der PHP Funktion mysql_num_rows() ermitteln wir die
        Anzahl der zurückgegebene Datensätze, wenn wir
        Datensätze zurückbekommen, wird mit einer while
        Schleife die Ausgabe generiert.
    */
    
if (@mysql_num_rows($query) != 0) {
        echo 
'ID;Datenbank<br>';
        while (
$daten mysql_fetch_assoc($query)) {
            echo 
$daten["id"].';'.$daten["datenbank"].'<br>';
        }
    } else {
        echo 
'Es sind keine Daten vorhanden!';
    }
?>

Die Ausgabe würde dann folgendermaßen aussehen:

ID;Datenbank
1;Daten von Tabelle: datenbank1

oder

ID;Datenbank
1;Daten von Tabelle: datenbank2

So das soll es erst mal gewesen sein, dieses Beispiel verdeutlicht nur, wie man auf zwei unterschiedliche Tabellen beziehungsweise Datenbänke drauf zugreifen kann. Vor ein paar Tagen habe ich schon ähnliche Beiträge verfasst, hier ging es darum, wie man zum Beispiel zufällig ein Bild oder Text anzeigen lassen kann. Vielleicht ist dies euch verständlicher, um zufällige Daten auszugeben. Wenn ihr nach Anregungen oder Fragen zu dieser Thematik hat, könnte gern in unserem Supportforum entsprechende Kritik oder Vorschläge veröffentlichen.

 

Tags


 

Verlink uns, wenn Dir das Tutorial gefallen hat:
Artikel hinzufügen bei: