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
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Zwei MySQL Tabellen miteinander verknüpfen über PHP - Teil II

Sie befinden sich: Home > Webmaster News

Ich möchte Ihnen hier erklären, wie Sie zwei Tabellen über PHP in einer Abfrage verknüpfen können. Hierzu habe ich auch ein Video gedreht. Dieser Artikel setzt auf: „Verbindung über PHP zu einer MySQL Datenbank herstellen – Teil I“.

Bei diesem Beispiel verwende ich das PHP Script „PhpMyAdmin“ welches bei jedem Webhoster oder Xampp zum Bearbeiten/Verwalten der MySQL Datenbanken zur Verfügung steht. Im zweiten Abschnitt gehe ich noch ein wenig auf den Designer von „PhpMyAdmin“ ein.

Videoaufnahme:

 

Überlegung/Planung:

In der einen Tabelle haben wir verschiedene Namen stehen und in einer anderen Tabelle Kategorien. Wenn man unter anderem eine Ausgabe der Einträge basierend auf die Kategorie machen möchte, benötigt man eine Verknüpfung.

Um das Beispiel bildlich zu erklären, nachfolgend eine Tabelle der jeweiligen Einträge. Die Tabelle nenne ich „test“:

id | name
--------------
1 | Nico Schubert
2 | Tobias Schubert

Beispiel für die Kategorien, wo ich die Einträge zuordnen möchte. Für die Tabelle gebe ich den Namen „kat“.

id | name
--------------
1 | Arbeitskollegen
2 | Freunde

Für die Verknüpfung benötigen wir eine zusätzliche Spalte in der Tabelle „test“, um später die Einträge nach Kategorien zu selektieren. Hierzu füge ich das Spaltenfeld „kat_id“ hin zu. Dies kann man über den MySQL Befehl:

ALTER TABLE `test` ADD `kat_id` INT(11) NOT NULL

machen. Um diesen MySQL-Befehl auszuführen, klicken Sie im linken Menü auf die Tabelle „test“ im PhpMyAdmin. Danach bekommt man im rechten Fenster eine Übersicht. Bei dieser Übersicht steht ganz oben ein Link, mit den Namen „SQL“. Klicken Sie bitte dort darauf, fügen Sie in das Textfeld den MySQL Befehl ein und klicken Sie anschließend auf OK.

Die Tabelle „test“ würde dann folgendermaßen aussehen.

id | name                 | kat_id
------------------------------------------
1 | Nico Schubert    | 0
2 | Tobias Schubert | 0

Nun kann man die Einträge, wie im Video gezeigt, über die Update-Funktion in PHPMyAdmin ändern. Als Erstes wen Sie hierzu im linken Menü die Tabelle „test“ aus und klicken auf „Anzeigen“ > „bearbeiten“ den jeweiligen Datensatz.

Anschließend sehen sie ein Formular, wo Sie in das Feld „kat_id“ unter Wert eine „1“ eintragen, wenn es sich bei diesem Datensatz um meine Arbeitskollegen handelt oder wenn es sich um einen Freund handelt, tragen Sie in das Feld eine „2“ ein und klicken anschließend auf den Button „Ok“.

Die Tabelle sollte nach dem Bearbeiten, keine „0“ mehr aufweisen. Da ansonsten bei unserer nachfolgenden Abfrage, dieser Datensatz nicht einbezogen würde.

Beispiel:

<?php 
/**
* verbindungsdaten.php einlesen
*/
include (dirname(__FILE__) .
'/verbindungsdaten.php');
$link = @ mysql_connect($datenbank_host,
$datenbank_user, $datenbank_passwort);
if (!$link) {
    die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db($datenbank_name, $link);
if (!$db_selected) {
    die('Keine Verbindung : ' . mysql_error());
} 
/**
* Freunde 
*/
$kat_id = 2;

$sql_select = "SELECT id, name FROM `kat` " .
        "WHERE `id` = '" . $kat_id . "';";
$query = mysql_query($sql_select);
if (mysql_num_rows($query) != 0) {
    while ($daten = mysql_fetch_assoc($query)) {
        echo 'Freunde aus: ' . $daten["name"] . '<br>';
        $sql_select2 = "SELECT id, name FROM " .
                "`test` WHERE `kat_id` ='" . $daten['id'] . "' ;";
        $query2 = mysql_query($sql_select2);
        if (mysql_num_rows($query2) != 0) {
            while ($daten2 = mysql_fetch_assoc($query2)) {

                echo $daten2["id"] .
                '->' . $daten2["name"] . '<br>';
            }
        }
    }
}
?>

Erklärung:

Kommen wir zu unserer PHP Anwendung, in dieser verwende ich zwei while Schleifen, worüber ich die zwei Tabellen Abfrage. Als erstes deklarierre ich eine Kategorie ID und speicher den Inhalt in der Variable $kat_id. Diese verwende ich dann anschließend in meinen MySQL Statement und selektieren mit WHERE die Kategorie. Die Kategorie ID „id“ verwende ich, um die Einträge abzufragen.

Anschließend gehe ich in der nächsten while Schleife den gleichen Weg und selektiere hierbei das Feld „kat_id“ und lasse mir alle Einträge der Tabelle „test" ausgeben.

Wie ihr bereits im Video festgestellt habt, werde ich in einer späteren Folge noch mal auf den PhpMyAdmin „Designer“ eingehen. Solltet ihr, was nicht verstanden haben, dann nutzt bitte die Kommentarfunktion oder schreibt einen Beitrag in unserem Forum.

Eingetragen am 12.08.2012


Schreib ein Kommentar

Name
Mail
Webseite
Kommentar