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
 

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

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.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:  4247
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
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 Sie könnten unterschiedliche Skripte zu dieser Thematik veröffentlichen. In diesem Beispiel gehe ich ausschließlich darauf ein, wie Sie per Zufall zwei unterschiedliche Tabellen ansteuern. Sie könnten 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:

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 ;


INSERT INTO `datenbank1` (`id`, `datenbank`) VALUES
(1, 'Daten von Tabelle: datenbank1');


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 ;


INSERT INTO `datenbank2` (`id`, `datenbank`) VALUES
(1, 'Daten von Tabelle: datenbank2');

Die gegebenen MySQL-Abfragen erstellen zwei Tabellen, datenbank1 und datenbank2, die jeweils zwei Spalten enthalten:

  1. Tabelle datenbank1:

    • Spalte id: Ein automatisch inkrementierender ganzzahliger Wert, der als Primärschlüssel dient.
    • Spalte datenbank: Ein Zeichenfolgenfeld mit einer maximalen Länge von 255 Zeichen, das Daten zur Tabelle datenbank1 speichert.
  2. Tabelle datenbank2:

    • Spalte id: Ein automatisch inkrementierender ganzzahliger Wert, der als Primärschlüssel dient.
    • Spalte datenbank: Ein Zeichenfolgenfeld mit einer maximalen Länge von 255 Zeichen, das Daten zur Tabelle datenbank2 speichert.

Die Struktur der Datenbanken als visuelle Darstellung

Tabelle datenbank1

Feld Typ
id int(11)
datenbank varchar(255)

Tabelle datenbank2

Feld Typ
id int(11)
datenbank varchar(255)

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

Das Script:

Die Ausgabe würde dann folgendermaßen aussehen:

<?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.
*/
$zufall_key = rand(1, count($host));

/**
* Nachdem wir eine zufällige Datenbank ausgewählt haben,
erstellen wir eine Verbindung zur MySQL-Datenbank
mit der MySQLi-Erweiterung.
*/
$db = new mysqli($host[$zufall_key], $user[$zufall_key], $passwort[$zufall_key], $datenbank[$zufall_key]);

/**
* Überprüfen, ob eine Verbindung hergestellt werden konnte
*/
if ($db->connect_error) {
die('Verbindung fehlgeschlagen: ' . $db->connect_error);
}

/**
* 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 Methode query() der MySQLi-Verbindung senden wir
unsere Abfrage an die Datenbank und speichern das
Resultat in der Variable $result.
*/
$result = $db->query($sql_select);

/**
* Überprüfen, ob die Abfrage erfolgreich war
*/
if ($result) {
echo '<strong>ID</strong>;<strong>Datenbank</strong><br>';
while ($daten = $result->fetch_assoc()) {
echo $daten["id"] . ';' . $daten["datenbank"] . '<br>';
}
} else {
echo 'Es sind keine Daten vorhanden!';
}

/**
* Verbindung schließen
*/
$db->close();
?>

Ausgabe:

ID;Datenbank

1;Daten von Tabelle: datenbank1

oder

ID;Datenbank

1;Daten von Tabelle: datenbank2

Erklärung:

Hier ist eine ausführliche Erklärung Schritt für Schritt:

  1. Datenbankkonfiguration: Das Skript beginnt mit der Konfiguration von Datenbankverbindungsparametern für zwei verschiedene Datenbanken. Jede Datenbank hat einen eigenen Host, Benutzer, Passwort, Datenbankname und Tabelle.

  2. Zufällige Datenbankauswahl: Das Skript verwendet die rand()-Funktion, um zufällig zwischen den beiden konfigurierten Datenbanken zu wählen. Dies ermöglicht es, eine zufällige Datenbank für die Abfrage auszuwählen.

  3. Verbindung zur Datenbank herstellen: Mit den ausgewählten Datenbankverbindungsparametern wird eine Verbindung zur gewählten Datenbank mit der MySQLi-Erweiterung hergestellt. Falls die Verbindung fehlschlägt, wird eine Fehlermeldung angezeigt.

  4. SQL-Abfrage erstellen und ausführen: Ein SQL-Abfrage-String wird erstellt, um alle Datensätze aus der ausgewählten Tabelle abzurufen. Dieser Abfrage-String wird dann mithilfe der query()-Methode an die Datenbank gesendet, um die Abfrage auszuführen.

  5. Datensätze anzeigen: Falls die Abfrage erfolgreich ist (kein Fehler auftritt), werden die abgerufenen Datensätze verarbeitet und angezeigt. Das Skript verwendet eine Schleife, um durch die Datensätze zu iterieren und die Werte der Spalten „id“ und „datenbank“ auszugeben.

  6. Verbindung schließen: Nachdem die Datensätze verarbeitet wurden, wird die Verbindung zur Datenbank mit der Methode close() geschlossen, um die Ressourcen freizugeben.

  7. Störungsbearbeitung: Wenn während eines Schritts ein Fehler auftritt, wird er durch entsprechende Fehlermeldungen behandelt, um dem Entwickler eine Rückmeldung über das Problem zu geben.

So das soll es gewesen sein, dieses Beispiel verdeutlicht nur, wie Sie auf zwei unterschiedliche Tabellen beziehungsweise Datenbänke drauf zugreifen können. Vor ein paar Tagen habe ich ähnliche Beiträge verfasst, hier ging es darum, wie Sie etwa 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:

 

Artikel hinzufügen bei: