Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Datenbankprogrammierung  Teil von  PHP und MySQL-Zugriffe
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Tabellen vereinigen (UNION): Seite 1

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



Manchmal kann es vorkommen, dass verschiedene Tabellen teilweise identisch aufgebaut sind oder Felder mit demselben Inhalt besitzen. So könnte eine Tabelle beispielsweise alle Mitglieder und eine weitere alle Interessenten für eine Mitgliedschaft enthalten, die getrennt voneinander aufgeführt werden, da für die Mitglieder teilweise andere Daten gespeichert werden als für die Interessenten.

Um solche Tabellen in einer einzigen Abfrage ausgeben zu können, müssen die Tabellen so kombiniert werden, dass jeweils Teilmengen verwendet werden. Hierfür steht ab Version 4 von MySQL der UNION-Befehl zur Verfügung. UNION fügt identische Datensätze aus verschiedenen Tabellen zu einem Datensatz zusammen und eliminiert dabei doppelte Datensätze. Die Syntax für UNION lautet:
mysql>SELECT <Feldname> FROM <Tabellenname> UNION SELECT <Feldname> FROM <Tabellenname>;

Hier ein Beispiel zur Ausgabe von Daten aus zwei Tabellen.

Tabellen – mitglieder und interessenten

CREATE TABLE IF NOT EXISTS mitglieder (
  MitgliedID int(11) NOT NULL auto_increment,
  MitgliedVorname char(40) default NULL,
  MitgliedNachname char(40) default NULL,
  Aufgabe char(40) default NULL,
  Geburtsdatum date default NULL,
  PRIMARY KEY (MitgliedID)
);

INSERT INTO mitglieder VALUES (1, 'Matthias', 'Kannengiesser', 'Leitung', '1974-11-20');
INSERT INTO mitglieder VALUES (2, 'Caroline', 'Kannengiesser', 'Leitung', '1979-01-04');
INSERT INTO mitglieder VALUES (3, 'Thomas', 'Mustermann', 'Mitglied', '1967-10-10');


CREATE TABLE IF NOT EXISTS interessenten (
  InteressentenID int(11) NOT NULL auto_increment,
  InteressentenVorname char(40) default NULL,
  InteressentenNachname char(40) default NULL,
  Geburtsdatum date default NULL,
  PRIMARY KEY (InteressentenID)
);

INSERT INTO interessenten VALUES (1, 'Manfred', 'Müller', '1990-10-02');
INSERT INTO interessenten VALUES (2, 'Tina', 'Maier', '1978-10-27');

Beispiel – Skript zur Erzeugung der Datenbank, Datenbanktabelle und Datensätze

<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli('localhost', 'matthias', 'geheim');

// Verbindung überprüfen
if (mysqli_connect_errno()) {
  printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
  exit();
}

// SQL-Befehl – Anlegen der Datenbank
$sql_befehl = "CREATE DATABASE IF NOT EXISTS Personen";

if ($db->query($sql_befehl)) {
  // Meldung bei erfolgreicher Erstellung der Datenbank
  echo "Datenbank erfolgreich angelegt.";
  // Datenbankwechseln (verwenden)
  //Alternative: $db->query("USE Verein");
  $db->select_db("Personen");  
} else {
  // Meldung bei fehlschlag
  echo "Datenbank konnte nicht angelegt werden!";
  exit();
}

// SQL-Befehl – Anlegen der Datenbanktabelle
$db->query("
CREATE TABLE IF NOT EXISTS mitglieder (
  MitgliedID int(11) NOT NULL auto_increment,
  MitgliedVorname char(40) default NULL,
  MitgliedNachname char(40) default NULL,
  Aufgabe char(40) default NULL,
  Geburtsdatum date default NULL,
  PRIMARY KEY (MitgliedID)
)
"
);

$db->query("
  INSERT INTO mitglieder VALUES
  (1, 'Matthias', 'Kannengiesser', 'Leitung', '1974-11-20'),
  (2, 'Caroline', 'Kannengiesser', 'Leitung', '1979-01-04'),
  (3, 'Thomas', 'Mustermann', 'Mitglied', '1967-10-10')
"
);

$db->query("
CREATE TABLE IF NOT EXISTS interessenten (
  InteressentenID int(11) NOT NULL auto_increment,
  InteressentenVorname char(40) default NULL,
  InteressentenNachname char(40) default NULL,
  Geburtsdatum date default NULL,
  PRIMARY KEY (InteressentenID)
)
");

$db->query("
  INSERT INTO interessenten VALUES
  (1, 'Manfred', 'Müller', '1990-10-02'),
  (2, 'Tina', 'Maier', '1978-10-27')
");

if ($db->query($sql_befehl)) {
  // Meldung bei erfolgreicher Erstellung der Datenbanktabelle
  echo "Datenbanktabellen erfolgreich angelegt.";  
} else {
  // Meldung bei Fehlschlag
  echo "Datenbanktabellen konnte nicht angelegt werden!";
}

// Verbindung zum Datenbankserver beenden
$db->close();

?>




Verknüpfte Tabellen (WHERE/JOIN)
 




:: Premium-Partner ::

Webhosting/Serverlösungen

Pixel X weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Sedo GmbH weitere Sponsoren
 


:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Verzeichnis rekursiv löschen

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


ICQ-Status von einem Benutzer anzeigen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2024 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de