Rando: Datenbankabfrage bringt nur ein Ergebnis (MySQL / PHP)

Hallo zusammen,

ich habe zwei Tabellen, eine mit Personendaten, eine mit einer Zuordnung  Position -> Person.

Jetzt möchte ich in PHP eine Kontaktseite erstellen - die Positionen sind statisch vorgegeben, die Namen sollen aus der DB geholte werden.

Das ganze sieht global folgendermaßen aus:

$sql_pers = "SELECT pers_aemter.Position, pers_aemter.PersID, pers_user.PersID, pers_user.Name, pers_user.Vorname WHERE pers_aemter.PersID = pers_user.PersID";
$pers_query = mysql_query($sql_pers) or die("Anfrage nicht erfolgreich");

Hierzu möchte ich dann in verschiedenen Zellen einer Tabelle Abfragen

<?php while ($pers = mysql_fetch_array($pers_query)){ IF ($pers['Pos'] == 'vorstand') {echo $pers['Vorname'] . ' ' . $pers['Name'];}} ?>

Das funktioniert auch soweit einwandfrei.
Doch ab der zweiten Abfrage

<?php while ($pers = mysql_fetch_array($pers_query)){ IF ($pers['Pos'] == 'vorsitz') {echo $pers['Vorname'] . ' ' . $pers['Name'];}} ?>

bleiben alle folgenden Ergebnisse leer.

Ich bin mir fast sicher dass das was mit der While Schleife zu tun hat die ich in jeder Zelle neu setze.
Kann mir jemand auf die Sprünge helfen?!

  1. Hallo

    Das ganze sieht global folgendermaßen aus:

    $sql_pers = "SELECT pers_aemter.Position, pers_aemter.PersID, pers_user.PersID, pers_user.Name, pers_user.Vorname WHERE pers_aemter.PersID = pers_user.PersID";

    SELECT ... FROM ... WHERE ...

    Du gibst nicht an, aus welchen Tabellen gelesen werden soll. Funktioniert ohne Abbruch, offensichtlich wegen der expliziten Tabellenangabe bei den Feldnamen, ist für mich aber ungewohnt.

    Du liest eine Spalte pers_aemter.Position ein und fragst in deiner Abfrage nach $pers['Pos']. Wenn du das machen willst solltest du den Ergebnissen aus der Spalte den Aliasnamen 'Pos' geben (pers_aemter.Position AS Pos).
    Desgleichen solltest du pers_aemter.PersID und  pers_user.PersID über einen Alias unterscheiden, falls du überhaupt beide Ergebisse brauchst. Schließlich sollen sie laut deiner WHERE-Bedingung einen identischen Wert haben.

    Tschö, Auge

    --
    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
    (Victor Hugo)
    <dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
    Veranstaltungsdatenbank Vdb 0.1
    1. Danke für die Tips!

      Selbstverständlich gebe ich in der Abfrage auch die Tabellen an - und Pos ist eigentlich auch gleich Position... ich habe das ganze nur der übersichtlichkeit halber etwas gekürzt (und dabei den Fehler mit Pos / Position gemacht und die FROM Zeile gelöscht). Das ist also soweit alles ok und funktioniert auch...