php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2006, 20:46  
Benutzer
 
Registriert seit: 18.07.2005
Beiträge: 90
c-bass
Standard MySQL Abfrage aus 3 Tabellen funzt nicht!

Hallo ich habe ein recht kompliziertes Problem:

Ich möchte aus 3 Tabellen, die mit einander verknüpft sind, bestimmte Werte ausgeben. Es handelt sich dabei um ein Immobilienverwaltungsprogramm in dem es Kunden, Immobilienobjekte und Dokumente gibt. Die Objekte werden den Kunden zugeordnet. Die Dokumente ebenfalls.


TABELLE 1 "fa_pass0_data"
----------------------------------
user_id
Kundennummer
Name
Vorname


TABELLE 2 "fa_pass0_login"
----------------------------------
user_id
reg_mail (E-Mailadresse des Kunden)


TABELLE 3 "Mieter" (Objekte die einem Kunden zugewiesen worden sind, der Mieter des Objektes ist ist)
-------------------------
ObjektnummerM
KundennummerM


Nun möchte ich folgende Daten ausgeben. Den Namen, Vornamen und die Emailadresse des Kunden, der einem bestimmten Objekt zugeordnet ist.

Ich habe zum Beispiel eine Objektenummer gegeben.
Nach meinen Überlegungen überprüfe ich anhand der Objektnummer (wie gesagt, ist bereits gegeben), ob in der Tabelle "Mieter" dem Objekt Personen zugeordnet wurden. Anhand deren Kundennummern finde ich deren Namen aus der Tabelle "fa_pass0_data". Aus dieser Tabelle finde ich wiederum mittels der "user_id" die Emailadresse aus der Tabelle "fa_pass0_login". Also zwischen jeder Tabelle besteht ein Bindeglied.

Ich habe das mal umgesetzt:

Code:
				$befehl4 = "

				SELECT 
						miet.ObjektnummerM,
						miet.KundennummerM,
						
						data.user_id,
						data.Name,
						data.Vorname,
						data.Kundennummer,
		
						login.user_id,
						login.reg_mail
						
				FROM 
						Mieter miet,
						fa_pass0_data data,
						fa_pass0_login login
						
				WHERE 
						'$Objektnummer' = miet.ObjektnummerM
						AND
						miet.KundennummerM = data.Kundennummer
						AND
						data.user_id = login.user_id" or die(mysql_error());
						

				//Befehl4 ausführen
				$befehl4ausfuehren = mysql_query($befehl4,$verbindung) or die (mysql_error());    

				//Jede Zeile ausgeben
				while ($ausgabe4 = mysql_fetch_array($befehl4ausfuehren))   
						{
						print "$ausgabe4[KundennummerM], $ausgabe4[Name]
";
}
Von der Logik her müßte das so stimmen, oder?

Mein Problem ist, dass nur eine einzige Kundennummer, also nur ein Kunde, ausgegeben wird, obwohl 3 Kunden dem Objekt mit der Objektnummer zugeordnet sind.


Für Deine Hilfe im Vorraus schon vielen Dank.

Gruß,
c-bass



PS: Die Tabellenkonstruktionen müßen so stehen bleiben.
__________________
// http://www.4Webworking.de
// Das Ressourcenarchiv für Webworker
c-bass ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.01.2006, 12:20  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard Re: MySQL Abfrage aus 3 Tabellen funzt nicht!

Zitat:
Zitat von c-bass
Mein Problem ist, dass nur eine einzige Kundennummer, also nur ein Kunde, ausgegeben wird, obwohl 3 Kunden dem Objekt mit der Objektnummer zugeordnet sind.
Dann haben die andern eben keine Mail-Adresse zugeordnet. Versuchs mal so, dann findest du das schnell raus:
PHP-Code:
$befehl4 "
    SELECT miet.ObjektnummerM,
           miet.KundennummerM,          
           data.user_id,
           data.Name,
           data.Vorname,
           data.Kundennummer,
           login.reg_mail          
    FROM Mieter miet
    INNER JOIN fa_pass0_data data ON miet.KundennummerM = data.Kundennummer
    LEFT JOIN fa_pass0_login login ON data.user_id = login.user_id          
    WHERE miet.ObjektnummerM = $Objektnummer"
;
                  
//Befehl4 ausführen
$befehl4ausfuehren mysql_query($befehl4) or die (mysql_error());   

//Jede Zeile ausgeben
while ($ausgabe4 mysql_fetch_array($befehl4ausfuehren))   
{
      print 
$ausgabe4['KundennummerM']. ", " 
            
$ausgabe4['Name'] . " " 
            
$ausgabe4['reg_mail'] . "
"
;

__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 17.01.2006, 10:00  
Benutzer
 
Registriert seit: 18.07.2005
Beiträge: 90
c-bass
Standard

also ich hab das mal überprüft. jeder kunde hat eine emailadresse.

und wennich deines probiere, dann kommt eine merkwürdige fehlermeldung: "Unknown column 'K003' in 'where clause' " aber ich weiss gar nicht woher die rühren könnte.
__________________
// http://www.4Webworking.de
// Das Ressourcenarchiv für Webworker
c-bass ist offline   Mit Zitat antworten
Alt 17.01.2006, 10:02  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

"K003" ist wohl der Wert der Variable $Objektnummer
Zergling-new ist offline   Mit Zitat antworten
Alt 17.01.2006, 10:05  
Benutzer
 
Registriert seit: 18.07.2005
Beiträge: 90
c-bass
Standard

ah okay, das lag an zwei zeichen:

WHERE miet.ObjektnummerM = $Objektnummer";

musste sein:

WHERE miet.ObjektnummerM = '$Objektnummer' ";

aber nun geschieht genau das selbe wie vorher. es erscheint nur ein kunde!
__________________
// http://www.4Webworking.de
// Das Ressourcenarchiv für Webworker
c-bass ist offline   Mit Zitat antworten
Alt 17.01.2006, 10:06  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Was daran liegt, dass es nur einen Kunden mit dieser ObjeknummerM zu geben scheint.
Zergling-new ist offline   Mit Zitat antworten
Alt 17.01.2006, 10:12  
Benutzer
 
Registriert seit: 18.07.2005
Beiträge: 90
c-bass
Standard

Zitat:
Was daran liegt, dass es nur einen Kunden mit dieser ObjeknummerM zu geben scheint.
so ähnlich, danke für den tipp. der fehler war, das die kunden eigentlich gar nicht mehr existierten, sondern nur noch in der tabelle mieter als zuordnung waren und die zuordnung nicht gelöscht wurde, als der kunde gelöscht wurde.

danke nochmal. ich hätte mir wahrscheinlich daran die zähne ausgebissen!!
__________________
// http://www.4Webworking.de
// Das Ressourcenarchiv für Webworker
c-bass ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Array in MYSQL Tabellen schreiben Matt Datenbanken 1 26.02.2008 19:43
Abfrage über 3 Tabellen madSoul Datenbanken 5 26.06.2006 12:25
[Erledigt] MYSQL Tabellen konvertieren. Datenbanken 1 11.04.2006 08:16
MySQL Abfrage über 2 Tabellen Datenbanken 4 21.03.2006 11:44
mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
problem bei ausgabe einer abfrage aus 2 Tabellen Lia PHP Tipps 2005-2 2 28.07.2005 17:30
Mysql Abfrage über 3 Tabellen in Verbidung mit COUNT() Datenbanken 8 29.06.2005 04:15
Mysql Abfrage über 3 Tabellen in Verbidung mit COUNT() PHP Tipps 2005-2 4 28.06.2005 07:47
MySQL Daten aus verknüpften Tabellen auslesen ? PHP Tipps 2005-2 2 27.06.2005 03:21
Frage zur MySQL Abfrage Datenbanken 5 04.02.2005 12:31
SQL Abfrage funzt nicht PHP Tipps 2005 7 28.01.2005 11:25
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Mysql Abfrage über 2 Tabellen mit Verknüpfung zuner 3. Datenbanken 2 26.10.2004 16:36
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql abfrage über 3 tabellen, abfragen über 3 tabellen, php mysql 3 tabellen verknüpfte abfrage, mysql abfrage, mysql 2 tabellen als eine einzige, abfrage mysql php über 3 tabellen, mysql 3 tabellen ausgeben, mysql verknüpfte tabellen kundennummer, mysql drei tabellen zusammen ausgeben

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.