SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

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

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 31.05.2011, 11:17:06
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
Abfrage über 6 Tabellen-11Spalten

Guten Tag!
Ich habe die Literatur über Mysql viele Stunden studiert, Manual, Koffler, SQL in 21 Tagen, Rouven Thimms Artikel Einführungs in Joins und Fortgeschrittene Joins von Vinzenz Mai. Vom Netz will ich garnicht reden.
Ich habe nicht das gefunden was ich suche. Vieleich habe ich mit meinen fast 8 Jahrzenten vieles übersehen, es ist auch nicht leicht alles zu behalten.


Zur Sache: Verknüpfung der Tabellen
Unten habe ich 6 Tabellen aufgeführt, Tabelle 1. bis 4. ist die Verknüpfung kein Problem.
Tabellen 5 und 6 soll nun auch mit der Tabelle 1 verknüpft werden und daran scheitere ich.
Die Spalten aw1 ... aw10 aus Tabelle 6 beinhalten einen Wert von ID_bild aus Tabelle 5.
Nun soll das Bild aus aw1 ... aw10 mit dem dazu gehörtem Text augegeben werden.
Es gibt keine mehrfachen Namen in den Tabellen und Spalten


1. Haupt-Tabelle: Je Zeile ein User
| ID | firma | vorname | nachname | ID_p | ID_o | ID_bund | ID_pikaw |

2. PLZ-Tabelle: Wohnort des Users Verknüpfung mit Hauptabelle über LEFT JOIN ist Ok
| ID_plz | plz |

3. Ort-Tabelle: Wohnort des Users Verknüpfung mit Hauptabelle über LEFT JOIN ist Ok
| ID_Ort | ort |

4. Bundesland-Tabelle: Wohnort des Users Verknüpfung mit Hauptabelle über LEFT JOIN ist Ok
| ID_land | bundesland |

5. Piktogramme-Tabelle: Mehr als 70 Bilder, BildNr. und beschreibender Text
| ID_bild | btext |

6. Auswahl-Tabelle: Je User bis zu 10 Bilder zur Auswahl, jedes Bild nur 1 mal
| ID_auswahl |aw1|aw2|aw3|aw4|aw5|aw6|aw7|aw8|aw9|aw10|

aw1...aw10 Verknüpfung mit ID_bild, und ID_auswahl mit ID_pikaw zur Verknüpfung mit dem User

Ausgabe soll sein:
ID, firma, vorname, nachname, plz, ort, bundesland und die Bilder zu aw1 bis aw10 mit btexte

Wer von Euch kann mir helfen eine Verknüpfung zu erstellen zwischen Haupt- Piktogramme- Auswahl-Tabelle.
Die Ausgabe erfolgt über PHP und Smarty. Es werden alle Spalten ausgegeben sofern Daten vorliegen.

Aus der Tabelle Piktogramme sollen über die Auswahl-Tabelle bis zu 10 Bilder je User ausgegeben werden.
ID_bild ist die Bildnummer, sie ist gleich mit der Nummer in aw1..aw10. Die Spalte btext beinhaltet
eine Beschreibung des Bildes. Die Bilder selbst liegen in einer Datei und werden über die ID_bild ausgewählt.

Für eure Mühe danke ich Euch!
Mit Zitat antworten
  #2  
Alt 31.05.2011, 11:49:44
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Abfrage über 6 Tabellen-11Spalten

Hi

Zitat:
Tabelle 1. bis 4. ist die Verknüpfung kein Problem.
Dann zeig uns doch mal was du hast.

Zitat:
Wer von Euch kann mir helfen eine Verknüpfung zu erstellen zwischen Haupt- Piktogramme- Auswahl-Tabelle.
Einige wenn du uns die Tabellenerstellungsdaten + Testdaten zur Verfügung stellst.

Zitat:
Für eure Mühe danke ich Euch!
Und wir dir für weitere infos ;)

mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #3  
Alt 31.05.2011, 12:18:08
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
AW: Abfrage über 6 Tabellen-11Spalten

Guten Tag CKaos,

Danke für Deine schnelle Antwort.

Ich erstelle Testtabellen mit einigen Daten usw.
Es wird aber eine kleine Weile brauchen.

Danke für die Mühe
Gruß von Gileeser
Mit Zitat antworten
  #4  
Alt 31.05.2011, 13:15:30
thomas_w thomas_w ist offline
Junior Member
 
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
AW: Abfrage über 6 Tabellen-11Spalten

Zitat:
Zitat von Gileeser Beitrag anzeigen
6. Auswahl-Tabelle: Je User bis zu 10 Bilder zur Auswahl, jedes Bild nur 1 mal
| ID_auswahl |aw1|aw2|aw3|aw4|aw5|aw6|aw7|aw8|aw9|aw10|

aw1...aw10 Verknüpfung mit ID_bild, und ID_auswahl mit ID_pikaw zur Verknüpfung mit dem User
Die 6. Auswahltabelle ist nicht richtig normalisiert, deshalb ist die Abfrage auch so schwierig.

Vorschlag zur Tabelle 6.

Code:
ID_auswahl | lfdnr | ID_bild
Die neue Spalte lfdnr soll einen Wert zwischen 1 und 10 annehmen können. Für jedes Bild wird einen Datensatz in der Tabelle eingetragen.

Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
Mit Zitat antworten
  #5  
Alt 31.05.2011, 15:18:45
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
AW: Abfrage über 6 Tabellen-11Spalten

Guten Tag thomas_w,

ich glaube es liegt ein Verständnisproblem vor. Ich werde mal versuchen durch aufzeichen einer Ausgabe der Daten Klarheit zu schaffen.

Ausgabe der Daten:
25
P
Hans Meister
27345 Musterdorf
Niedersachsen
Bild1 Bild2 Bild3 Bild4 Bild5 Bild6 Bild7 Bild8 Bild9 Bild10

Beschreibung der Ausgabe 1:
25 stellt die KundenNr., P die Firma, Vor u. Nachname, Bundesland dar.
Bild1 hat die BilderNr. 25, Bild 2 die BilderNr. 7, Bild3 die BilderNr. 61 usw.

Beschreibung der Ausgabe 2:
17 stellt die KundenNr., P die Firma, Vor u. Nachname, Bundesland dar.
Bild1 hat die BilderNr. 15, Bild 2 die BilderNr. 34, Bild3 die BilderNr. 48 usw.

Beim Klick auf ein Bild in der Ausgabe wird die Beschreibung angezeigt.
Die BilderNrn. werden durch den User in die Tabelle eingetragen und werden nicht angezeigt.

Es muß also von der Tabelle 1 zur Tabelle 5 und zur Tabelle 6 eine Verbindug hergestellt werden.
Aber wie, das ist also die große Frage.

Ich würde mich freuen wenn einer der klugen Köpfe einen Klick findet.

Gruß an alle
Gileeser
Mit Zitat antworten
  #6  
Alt 31.05.2011, 17:22:28
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
AW: Abfrage über 6 Tabellen-11Spalten

Guten Nachmittag,

ich habe nun die Testdaten fertig.

Mit phpMyAdmin habe ich folgendes Select getestet.

SELECT * FROM haupttb
LEFT JOIN plztb ON haupttb.ID_p = plztb.ID_plz
LEFT JOIN orttb ON haupttb.ID_o = orttb.ID_ort
LEFT JOIN bundeslandtb ON haupttb.ID_bund = bundeslandtb.ID_land
LEFT JOIN piktogrtb ON haupttb.ID_pikaw = piktogrtb.ID_bild
WHERE plztb.plz
Ende select

Diese Ausgabe von der folgenden Zeile brauche ich 10 mal in jeder Zeile, natürlich mit verschiedenen Werten:
LEFT JOIN piktogrtb ON haupttb.ID_pikaw = piktogrtb.ID_bild

Ich hoffe Ihr könnt mir damit helfen.

Danke! Gruß Gileeser
Angehängte Dateien
Dateityp: txt ForumTestdaten.txt (11,4 KB, 13x aufgerufen)
Mit Zitat antworten
  #7  
Alt 31.05.2011, 20:00:32
thomas_w thomas_w ist offline
Junior Member
 
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
AW: Abfrage über 6 Tabellen-11Spalten

Also ich meine schon, dass mit normalisierung da was zu machen ist. Aber nichts desto trotz hier ein Beispiel für aw1 und aw2. Für den Rest war ich zu faul und Du brauchst es nur weiter zu ergänzen.

Code:
SELECT haupttb.ID, haupttb.firma, haupttb.vorname, haupttb.nachname, 
       plztb.plz, orttb.ort, bundeslandtb.bundesland,
       aw1.aw1, aw1.btext,
       aw2.aw2, aw2.btext
  FROM haupttb
  LEFT JOIN plztb 
         ON haupttb.ID_p = plztb.ID_plz
  LEFT JOIN orttb 
         ON haupttb.ID_o = orttb.ID_ort
  LEFT JOIN bundeslandtb 
         ON haupttb.ID_bund = bundeslandtb.ID_land
  LEFT JOIN piktogrtb 
         ON haupttb.ID_pikaw = piktogrtb.ID_bild
  LEFT JOIN ( SELECT a.ID_auswahl, a.aw1, p.btext 
                FROM auswahltb a
                JOIN piktogrtb p
                  ON a.aw1 = p.ID_bild   ) aw1
         ON aw1.ID_auswahl = haupttb.ID_pikaw
  LEFT JOIN ( SELECT a.ID_auswahl, a.aw2, p.btext 
                FROM auswahltb a
                JOIN piktogrtb p
                  ON a.aw2 = p.ID_bild   ) aw2
         ON aw2.ID_auswahl = haupttb.ID_pikaw
 WHERE plztb.plz;
+----+-------+---------+------------+-------+------------+--------------------+------+--------------------------+------+-------------------+
| ID | firma | vorname | nachname   | plz   | ort        | bundesland         | aw1  | btext                    | aw2  | btext             |
+----+-------+---------+------------+-------+------------+--------------------+------+--------------------------+------+-------------------+
|  1 | P     | Hans    | Meister    | 01157 | Aerzen     | Saarland           |    5 | 24h-Rezeption            |   17 | 2 Bettzimmer      |
|  2 | H     | Grete   | Hauslaus   | 01239 | Alf        | Bremen             |   15 | 1 Bettzimmer             |   12 | Safe im Zimmer    |
|  3 | P     | Karl    | Gistermann | 01445 | Ahrensburg | Schleswig-Holstein |    7 | Telefon im Zimmer        |    5 | 24h-Rezeption     |
|  4 | H     | Ulla    | Clausen    | 01127 | Achslach   | Hamburg            |    1 | Behinderte Einrichtungen |    2 | Hunde erlaubt     |
|  5 | B     | Frank   | Elster     | 01139 | Aarbergen  | Sachsen-Anhalt     |    8 | Kinderbett               |    7 | Telefon im Zimmer |
+----+-------+---------+------------+-------+------------+--------------------+------+--------------------------+------+-------------------+
5 rows in set (0.00 sec)

mysql>
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
Mit Zitat antworten
  #8  
Alt 31.05.2011, 22:44:35
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
AW: Abfrage über 6 Tabellen-11Spalten

Danke an Thomas,

Du warst nicht zu faul, Du hast mir nur nicht die Arbeit wegnehmen wollen und das ist gut so.
Ich werde die Arbeit morgen fortführen, denn was ist das Leben ohne Arbeit? - Grausam!

Grüße Gileeser
Mit Zitat antworten
  #9  
Alt 01.06.2011, 09:37:39
Gileeser Gileeser ist offline
Anfänger
 
Registriert seit: Jan 2010
Alter: 14
Beiträge: 10
AW: Abfrage über 6 Tabellen-11Spalten

Zitat:
Zitat von thomas_w Beitrag anzeigen
Also ich meine schon, dass mit normalisierung da was zu machen ist. Aber nichts desto trotz hier ein Beispiel für aw1 und aw2. Für den Rest war ich zu faul und Du brauchst es nur weiter zu ergänzen.

Code:
SELECT haupttb.ID, haupttb.firma, haupttb.vorname, haupttb.nachname, 
       plztb.plz, orttb.ort, bundeslandtb.bundesland,
       aw1.aw1, aw1.btext,
       aw2.aw2, aw2.btext
  FROM haupttb
  LEFT JOIN plztb 
         ON haupttb.ID_p = plztb.ID_plz
  LEFT JOIN orttb 
         ON haupttb.ID_o = orttb.ID_ort
  LEFT JOIN bundeslandtb 
         ON haupttb.ID_bund = bundeslandtb.ID_land
  LEFT JOIN piktogrtb 
         ON haupttb.ID_pikaw = piktogrtb.ID_bild
  LEFT JOIN ( SELECT a.ID_auswahl, a.aw1, p.btext 
                FROM auswahltb a
                JOIN piktogrtb p
                  ON a.aw1 = p.ID_bild   ) aw1
         ON aw1.ID_auswahl = haupttb.ID_pikaw
  LEFT JOIN ( SELECT a.ID_auswahl, a.aw2, p.btext 
                FROM auswahltb a
                JOIN piktogrtb p
                  ON a.aw2 = p.ID_bild   ) aw2
         ON aw2.ID_auswahl = haupttb.ID_pikaw
 WHERE plztb.plz;
+----+-------+---------+------------+-------+------------+--------------------+------+--------------------------+------+-------------------+
| ID | firma | vorname | nachname   | plz   | ort        | bundesland         | aw1  | btext                    | aw2  | btext             |
+----+-------+---------+------------+-------+------------+--------------------+------+--------------------------+------+-------------------+
|  1 | P     | Hans    | Meister    | 01157 | Aerzen     | Saarland           |    5 | 24h-Rezeption            |   17 | 2 Bettzimmer      |
|  2 | H     | Grete   | Hauslaus   | 01239 | Alf        | Bremen             |   15 | 1 Bettzimmer             |   12 | Safe im Zimmer    |
|  3 | P     | Karl    | Gistermann | 01445 | Ahrensburg | Schleswig-Holstein |    7 | Telefon im Zimmer        |    5 | 24h-Rezeption     |
|  4 | H     | Ulla    | Clausen    | 01127 | Achslach   | Hamburg            |    1 | Behinderte Einrichtungen |    2 | Hunde erlaubt     |
|  5 | B     | Frank   | Elster     | 01139 | Aarbergen  | Sachsen-Anhalt     |    8 | Kinderbett               |    7 | Telefon im Zimmer |
+----+-------+---------+------------+-------+------------+--------------------+------+--------------------------+------+-------------------+
5 rows in set (0.00 sec)

mysql>
Grüße
Thomas
Moin, Moin,

ich habe Dein Muster, Thomas, auf 10 Stellen erweitert und es funktioniert besten.
Du hast eine sehr gute Arbeit geleistet, dafür nochmals besten Dank.

Alles Gute, Grüße Gileeser
Mit Zitat antworten
Antwort

Stichworte
abfragen, tabellen, verknüpfung, viele spalten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage über Tabellen frank1973 MySQLi/PDO/(MySQL) 5 06.01.2010 07:03:23
Abfrage über 3 gleiche Tabellen Michael_Roelle MySQLi/PDO/(MySQL) 4 28.02.2008 07:42:03
Abfrage nach letztem Datum über mehrere Tabellen delalE MySQLi/PDO/(MySQL) 27 13.06.2007 18:00:40
Abfrage aus zwei Tabellen Skyman MySQLi/PDO/(MySQL) 5 23.05.2006 17:39:53
Abfrage über zwei Tabellen MrLongbaugh MySQLi/PDO/(MySQL) 6 30.08.2005 17:14:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:22:02 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt