Tabellen verbinden zur Abfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tabellen verbinden zur Abfrage

    Ich schreibe eine Kunden und Auftragsverwaltung und lese dabei die Auftäge aus der tabelle auftrag aus. Dort gibt es unter anderem die KundenID die auch in der Kundentabelle angelegt ist.
    ich frage ich Aufträge ab und die KundenID wird mir angezeigt. Jetzt möchte ich eine Abfrage der Kundentabelle wobei nicht die KundenID die in der Auftragstabelle gespeichert ist angezeigt wird sondern der Kundenname der in der Kundentabelle steht.

    Problem:
    die for Schleife wird unterbrochen sobald ich in der Tabelle eine Abfrage einfüge. es wird nur 1 Auftrag angezeigt.

    folgendes habe ich programmiert:

    auftragsklasse Auftrag auslesen:
    ---------------
    function auftragAuslesen()
    {
    $arr=array();
    $res_id=$this->db->query("SELECT * FROM auftrag");
    if (!res_id) return -1;
    while ($i++<mysql_num_rows($res_id))
    array_push($arr, mysql_fetch_array($res_id));
    return $arr;
    }
    ----------------
    Kundenklasse: Kundendaten der KundenID anzeigen:
    ----------------
    function getKunden($ID)//hier wird ein Kunde zum anzeigen ausgewählt
    {

    $res_id=$this->db->query("SELECT * FROM kunden WHERE kundenID LIKE '$ID'");
    if($res_id) return mysql_fetch_array($res_id);
    else return -1;
    }
    ------------------
    die PHP Seite auszugsweise:

    $auftrag= new auftragClass;
    $res=$auftrag->auftragAuslesen();
    $kunden= new kundenClass;

    foreach ($res as $row)

    echo "<tr>
    <td>$row[auftragnr]</td>
    <td>$row[kundenID]</td>
    <td>$row[auftragsart]</td>
    ------------------------

    soweit so gut: es wird alles angezeigt.
    ersetze ich jetzt $row[kundenID] durch:

    #$KID=$row[kundenID];
    #$kundennochmal=$kunden->getKunden($KID);
    echo $kundennochmal[name];

    wird meine Schleife unterbrochen und nur 1 Auftrag wird angezeigt.
    Hat jemand eine Lösung für mich? Ich möchte ja nur statt der KundenID den Kundennamen angezeigt bekommen.
    Besten Dank vorab für eine Hilfe.
    Der günstigste Webspace in Europa

    150 MB nur 99 CENT

    http://www.hostloco.com

  • #2
    dein Problem ist wohl ziemlich logisch, wenn man bedenkt, dass $res_id überschrieben wird.

    Dass du für 10 Kunden 11 Abfragen benötigst und das man das nicht gerade performant und sauber nennen kann sollte wohl auch klar sein.

    Klarer Fall sich mal näher mit MySQL und JOIN zu beschäfftigen-

    Kommentar


    • #3
      *VERSCHIEB* nach sql
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        ICH habs

        herzlichen Dank für den Hinweis sich mit join zu beschäftigen, das war mein Problem.

        ------------------------
        schnipp:
        Dass du für 10 Kunden 11 Abfragen benötigst und das man das nicht gerade performant und sauber nennen kann sollte wohl auch klar sein.
        -----------------------

        warum 10 Abfragen? wie würdest Du die Abfrage effizienter gestalten?

        nochmal herzlichen Dank ich habe heute mal wieder viel gelernt.
        Der günstigste Webspace in Europa

        150 MB nur 99 CENT

        http://www.hostloco.com

        Kommentar

        Lädt...
        X