Sönke Tesch: Mehrere DB-Abfragen mit einem Befehl

Beitrag lesen

Ichmöchte gerne eine DB-Abfrage realisieren und habe auch schon ein einigermassen laufendes Script.

$result = mysql_query("select * from tbl_mitarbeiter A, tbl_mitarbeiter_sachgebiet_assoc B where B.branche_id = " . $brancheID . " and B.unternehmen_id = A.id order by A.name");
  $brancheName = "Sachbearbeiter zum Gebiet " . $brancheName . ":";
  $wasID = mysql_query("select amt from tbl_sachgebiet where id = " . $brancheID);

}

im unteren Teil möchte ich noch die wasID selektieren.
Nur bekomme ich keine Ausgabe.
Was mache ich falsch?

Also erstmal möchte fröhlich in's Blaue hinein behaupten, daß Deine Abfrage nicht ganz richtig ist, weil es doch eigentlich "tbl_mitarbeiter as A" heißen sollte und nicht "tbl_mitarbeiter A".

Dann wäre Dir dieser Fehler (wenn's denn einer ist) sicher selbst aufgefallen, wenn Du das gemacht hättest, was jeder schlaue (und misstrauische) Programmierer bei Ergebnissen und Daten macht, die von "außen" kommen: eine Fehlerprüfung.

Die fehlende Fehlerprüfung ist hier aber nicht so wild, denn der eigentliche Grund, warum Du keine Ausgabe kriegst, ist einfach, daß Du anscheinend vergessen hast, die Daten auszulesen und auszugeben.
mysql_query() führt die Abfrage nur aus und liefert Dir einen großen 40"-Container mit Daten. Diese Daten mußt Du per mysql_fetch_assoc() dann erstmal ausladen (oder mit ähnlichen Funktionen, mysql_fetch_assoc() ist aber IMHO die günstigste).

Schön ausformuliert sieht das Ganze dann so aus:

if (! $result=mysql_query("select blabla from und as so where weiter=1"))
    {
     die("SQL-Fehler: ".mysql_error());
    }
   else
    {
     while ($row=mysql_fetch_assoc($result))
       {
        echo "blabla=".$row["blabla"] . "\n";
       };
    };

Gruß,
  soenk.e