Tabellenausgabe aus 2 MySQL Datenbanken

PHP:
  $abfrage="Select Tabelle1.Firma_ID, 
  Tabelle1.Name, Tabelle1.Einstellungsdatum, Tabelle2.Firma_ID, Tabelle2.FIrma, Tabelle2.Beschreibung 
  From Tabelle1, Tabelle2";
  
  $ergebnis = mysql_query($abfrage);
 
 echo "<table>";
 while($ausgabe = @mysql_fetch_array($ergebnis))
 {
 print ("<tr><td>$ausgabe[4]</td></tr>"); #firma
 print ("<tr><td>$ausgabe[5]</td></tr>"); #beschreibung
 print ("<tr><td>$ausgabe[1]</td></tr>"); #name
 print ("<tr><td>$ausgabe[2]</td></tr>"); #einstelldatum
 }

So bekommst Du Deine Daten. Nur noch die Tabellennnamen einsetzten, die weiß ich ja nicht.
 
Das würde mich aber wundern. Du hast in der SQL-Abfrage die Felder und Tabellen vertauscht. Es muss heissen: Tabellenname.Feldname - nicht umgekehrt.

Sven
 
Sorry Schusselfehler..... habs geändert, aber trotzdem immernoch net :-/

<edit>

ok jetzt es....hatte noch nen fehler im Tabellennamen....
 
Zuletzt bearbeitet:
1. Es heisst Tabellenname.Feldname und nicht Feldname.Tabellennamen im SELECT-Teil des Querys
2. Musst Du, wie schon im Beispiel von schamahn, das Kartesische Produkt (-> Google hilft bestimmt), welches Du durch die Angabe von zwei Tabellen nach FROM erhältst durch eine Selektion (-> Google hilft bestimmt) in einem WHERE-Teil auf die zueinander passenden Datensätze reduzieren.
3. Das @ ist wirklich nicht nötig und erschwert nur die Fehlersuche.
4. Der Zugriff auf ein Array innerhalb eines Strings sollte nicht direkt im String erfolgen.
5. Du greifst mit Konstanten als Arrayindex auf Dein Array zu, die zufällig gerade inhaltlich ihrem Namen entsprechen, weil sie nicht definiert wurden.
6. Das [phpf]mysql_error[/phpf] keinen Fehler liefert glaub ich nicht. (EDIT: 6. hat sich wohl erledigt)

Lösungsvorschlag zu 4 und 5:
PHP:
print ("<tr><td>".$ausgabe['nameid']."</td></tr>");
 
ok, nochmal....
Mal abgesehen vom Array, prober das erstmal. Dann schauen wir weiter:

PHP:
  $abfrage="Select Tabelle1.Firma_ID, 
  Tabelle1.Name, Tabelle1.Einstellungsdatum, Tabelle2.Firma_ID, Tabelle2.FIrma, Tabelle2.Beschreibung 
  From Tabelle1, Tabelle2";
  
  $ergebnis = mysql_query($abfrage);
 
 echo "<table>";
 while($ausgabe = mysql_fetch_row($ergebnis))
 {
  echo"<tr><td> $ausgabe[4] </td></tr>"; #firma
  echo"<tr><td> $ausgabe[5] </td></tr>"; #beschreibung
  echo"<tr><td> $ausgabe[1] </td></tr>"; #name
  echo"<tr><td> $ausgabe[2] </td></tr>"; #einstelldatum
 }
  echo "</table>";
und nicht vergessen, die Tabellennamen zu ändern ;)
 
Nächstes Problem..... :-(
Die Ausgabe zwar aber er soll ja net alles ausgeben....

NameID in Tabelle1 soll mit Name in Tabelle2 abgeglichen werden....sprich in der Ausgabe soll NUR der Name erscheinen, net die ID.

Und das ganze auch nur einmal.

Tabelle1:

NameID blabla blabla

Tabelle2

NameID Name blabla blabla

wobei in Tabelle 2 NameID und Name auch doppelt enthalten sind, aber net doppelt ausgegeben werden sollen.

jetzt wirds kompliziert.... :-/
 
Also um es nochmal kurz zu fassen, Tabelle 1 soll praktisch komplett aufgelistet werden, allerdings soll an Stelle von NameID direkt der NAME aus Tabelle 2 ausgegeben werden.

Also müßte ich ja nen Ablgleich machen, wonach der vor jeder Bildschirmausgabe NameID mit Name abgleicht ?!
 
Fast ;)
änder mal die Select - ANweisung:
PHP:
  $abfrage="Select Tabelle1.Firma_ID, 
  Tabelle1.Name, Tabelle1.Einstellungsdatum, Tabelle2.Firma_ID, Tabelle2.FIrma, Tabelle2.Beschreibung 
  From Tabelle1, Tabelle2
  Where Tabelle1.Firma_ID = Tabelle2.Firma_ID";
Du kannst mit dem Befehl $ausgabe[x] alles ausgeben, was oben abgefragt wird. Das "x" beschreibt die POsition in der obigen Abfrage. Also [1] wäre Tabelle1.Firma_ID oder [2] wäreTabelle1.Name .usw...
Mit Where bestimmst Du die Bedingungen. Hier habe ich einfach geschrieben, dass in beiden Tabellen die IDs gleich sein sollen. D.h. die Firmen sollten identisch sein.
 
Zurück