SQL Abfrage von 2 Tabellen
Ann
- php
Moin,
ich brauche mal dringend eure Hilfe und würde mich freuen wenn Ihr mir helfen könntet.
Ich möchte mit PHP eine verteilte MySQl DB abfragen, weiss aber nicht wie ich dies realisieren soll.
Einfache Abfragen sind für mich kein Problem, aber hier weiss ich nicht wo ich ansetzen muss.
|============| |============|
|geraete | |agentur |
|------------| |------------|
|geraeteID | /----->|agenturID |
|geraeteName | | |agenturName |
|geraeteType | | |============|
|serienNummer| |
|agenturID |<--/
|============|
Ich suche nach einer Möglichkeit, das Ergebnis aus den beiden Tabellen so auszugeben.
|============|
|geraeteID |
|geraeteName |
|geraeteType |
|serienNummer|
|agenturName |
|============|
Wisst Ihr vielleicht eine Lösung auf mein Problem?
Ann
Hi,
|============| |============|
|geraete | |agentur |
|------------| |------------|
|geraeteID | /----->|agenturID |
|geraeteName | | |agenturName |
|geraeteType | | |============|
|serienNummer| |
|agenturID |<--/
|============|
|============|
|geraeteID |
|geraeteName |
|geraeteType |
|serienNummer|
|agenturName |
|============|
Es gibt sicherlich mehrere Möglichkeiten:
eine davon:
SELECT g.geraeteID,g.geraeteName,g.geraeteType,g.serienNummer,a.agenturID FROM
geraete g, agentur a WHERE <--deine Bedingungen -->
oder aber auch
SELECT * FROM geraete, agentur WHERE <--deine Bedingungen-->
ciao
romy
Hi,
was du machen möchtest nennt sich JOIN der Syntax lautet:
SELECT geraeteID,geraeteType,serienNummer,agenturName FROM geraete,agentur WHERE geraete.agenturID = agentur.agenturID
Natürlich lässt sich das noch durch weitere WHERE Bedingungen verknüpft mit OR oder AND erweitern. ORDER BY, LIMIT sind auch hilfreich.
Gruß
bastian
SELECT geraeteID ..
sorry, hier natürlich vor dem Spaltennamen den tabellenname z.B.
geraete.geraeteID statt geraeteID
Hi bastian,
SELECT geraeteID,geraeteType,serienNummer,agenturName FROM geraete,agentur WHERE geraete.agenturID = agentur.agenturID
ich habe mich warscheinlich etwas falsch ausgedrückt. Die Abfrage, habe ich genau so wie Du. Was mir Kopfzerbrechen macht ich das PHP.
Ich habe es bis jetzt so:
$result = @mysql_db_query($dbname, "SELECT geraeteID,geraeteType,serienNummer,agenturName FROM geraete,agentur WHERE geraete.agenturID = agentur.agenturID", $db);
$row = @mysql_num_rows($result);
und wollte mit ner Schleife
for ($i=0;$i<$row;$i++) {
}
die Tabelle Ausgeben. Aber genau da komme ich nicht weiter.
Ann
Hi,
Hi bastian,
ich fühl mich mal trotzdem angesprochen ;)
$result = @mysql_db_query($dbname, "SELECT geraeteID,geraeteType,serienNummer,agenturName FROM geraete,agentur WHERE geraete.agenturID = agentur.agenturID", $db);
$row = @mysql_num_rows($result);
jetzt fehlt noch ein $ausgabe = mysql_fetch_array()
und dieses array das Du dann hast kannst Du ausgeben, bzw. mit den Namen ansprechen
a la: $ausgabe["serienNummer"];
alles klar?
ciao
romy
Hi romy,
danke für deine Hilfe.
Ann
$result = @mysql_db_query($dbname, "SELECT geraeteID,geraeteType,serienNummer,agenturName FROM geraete,agentur WHERE geraete.agenturID = agentur.agenturID", $db);
while (mysql_fetch_row($result))
{
$i=0;
while ($i < mysql_num_fields($result))
{
$i++;
$spalte = mysql_field_name($select, $i);
$row[$spalte] = mysql_result($select, $i);
}
$tbl[] = $row;
}
Das sollte dir ein 2DIm array geben in der form $tbl[int zeilenNummer][string SpaltenName]
Ich hoffe das hilft dir.
Gruß
Bastian