Chris: Mysql und JOIN

Hallo ihr Forumler,

ich habe ein Problem mit JOIN. Er gibt mir auch leider keine Fehlermeldung aus, sonder er schreibt eine Endlosschleife und ich weiss nicht warum :(

Hier mal der Quelltext:

<select name="kundenname">
<option value="">Bitte Kunde auswählen</option>
<?
$result4 = mysql_query("SELECT k.Kund_ID AS kid, k.Kund_Name AS kname, a.Ap_ID AS aid, a.Ap_Kund_ID AS a_kid FROM Kunden AS k, Ansprechpartner AS a WHERE k.Kund_ID = a.Ap_Kund_ID")or die(mysql_error());
$auswahl2 = mysql_fetch_array($result4, MYSQL_ASSOC);

for ($i=0; $i<$auswahl2; $i++)
{
 if ($kundenname == $auswahl2[Kund_ID])
 {
  ?>
  <option value="<?echo $auswahl2[Kund_ID]?>" selected><? echo $auswahl2[Kund_Name]?></option>
  <?
 }
 else
 {
  ?>
  <option value="<?echo $auswahl2[Kund_ID]?>"><? echo $auswahl2[Kund_Name]?></option>
  <?
 }
}
?>
</select>

Zur Erklärung: Ich habe 2 Tabellen, Kunden und Ansprechpartner. 1 Kunde hat immer mehrere Ansprechpartner.
Ich möchte gerne das, wenn man ein Ansprechpartner auswählt auch der Kunde mit angezeigt wird. Aber soweit kommt er ja noch nichtmal. Er zeigt mir ja alle Ansprechpartner in der Auswahlbox an aber wenn ich dann auf auswählen drücke, bleibt er stecken. Wo ist da mein Fehler?

Beste Grüße

Chris

  1. Halihallo Chris

    $result4 = mysql_query("SELECT k.Kund_ID AS kid, k.Kund_Name AS kname, a.Ap_ID AS aid, a.Ap_Kund_ID AS a_kid FROM Kunden AS k, Ansprechpartner AS a WHERE k.Kund_ID = a.Ap_Kund_ID")or die(mysql_error());

    Abstand zu ") or die(...)".

    $auswahl2 = mysql_fetch_array($result4, MYSQL_ASSOC);

    $auswahl2 ist ein Array...

    for ($i=0; $i<$auswahl2; $i++)

    ... und dieses vergleichst du mit einer Zahl??? - Sehr ungut!
    Informiere dich über mysql_num_rows.

    Viele Grüsse

    Philipp

    1. Hallo Philipp,

      Abstand zu ") or die(...)".

      hab ich gemacht, warum auch immer ein Abstand?

      Ok wunderbar ich habs nun mit mysql_num_rows gelöst. Jetzt erzeugt er keine Endlosschleife mehr. Und in der JOIN Abfrage habe ich den Fehler auch gleichmal behoben :)

      Vielen Dank!

      Gruß Chris

      Viele Grüsse

      Philipp

      1. Halihallo Chris

        Abstand zu ") or die(...)".
        hab ich gemacht, warum auch immer ein Abstand?

        Gehört zum guten Stil :-)
        Stringifizierte Operanden sollte man schon trennen, denn sonst gibt's ggf. Probleme
        für den Parser. Toleriert wird es aber meistens, nur, gehört es eben nicht zum besten
        Stil :-)

        Ok wunderbar ich habs nun mit mysql_num_rows gelöst. Jetzt erzeugt er keine Endlosschleife mehr. Und in der JOIN Abfrage habe ich den Fehler auch gleichmal behoben :)

        So weit ins Detail hatte ich noch gar nicht gelesen :-)

        Viele Grüsse

        Philipp