JOIN Informationen aus zwei Tabellen

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

  • JOIN Informationen aus zwei Tabellen

    Hallo zusammen,

    bin neu hier und auch mit PHP noch nicht so vertraut, daher hoffe Ich auf hilfreiche Antworten. Vielen Dank.
    Ich habe eine Liste, in diese Liste möchte Ich (Lager-)Artikel aus meiner MySQL-DB auslesen.
    Falls der Artikel bereits im Lager eingelagert ist und die Informationen zum Lagerfach bereits vorhanden ist,
    möchte Ich diese auslesen mit dem JSON-String. Falls diese Info jedoch noch nicht vorhanden sind möchte Ich
    den Artikel trotzdem in die Liste übernehmen. Das Lagerfach möchte Ich dann auf "Noch nicht eingelagert" setzen.
    Es gibt verschiedene Produktgruppen.

    Artikelliste (warelist):
    ____________________________________________________________________________________
    |ID|Artikelnummer|Artikelbeschreibung|Produktgruppe|Fremdschlüssel zu Lagerorte (ID)|
    ____________________________________________________________________________________
    |1 | 12345 | Schraube |2 | 1 |
    ____________________________________________________________________________________

    ....

    Lagerorte (store):
    _____________________________________
    |M_ID|Artikelnummer|Lagerfach |
    _____________________________________
    |1 | 12345 | 13 |
    _____________________________________


    Wie kann Ich vorab - in der gleichen PHP-Datei - prüfen ob in der anderen Liste "Lagerorte" bereits ein Lagerfach für den jeweiligen Artikeln
    vorhanden ist um die ID dann in die Artikelliste mit aufzunehmen?

    Mit
    Code:
    $q=mysql_query("SELECT * FROM warelist WHERE produktgruppe= '2'");
            while ($e = mysql_fetch_assoc($q)) {
                $output[] = $e;
            }
    
    print(json_encode($output));
    gelingt es mir alle Artikel einer Produktgruppe auszulesen.
    Versuche Ich aber auch noch die anderen Daten der anderen Tabelle (Lagerorte) auszulesen gelingt mit das leider nicht.
    Was mache Ich den falsch (siehe unten meinen Ansatz)?

    Code:
    $q=mysql_query("SELECT * FROM warelist, store WHERE ID = M_ID AND produktgruppe= '2'");
            while ($e = mysql_fetch_assoc($q)) {
                $output[] = $e;
            }
    
    print(json_encode($output));
    Ich danke euch vorab.

  • #2
    Verwende niemals SELECT *, sondern gib im SELECT immer die Spalten an, die du im Ergebnis erwartest.

    Verwende LEFT oder INNER JOIN und keinen Theta-Style-Join.

    Die mysql_* Funktionen sind veraltet. Verwende stattdessen mysqli oder PDO.

    Verwende aussagekräftiger Variabelnahmen und keine Abkürzungen ($q, $e).

    Entscheide dich für eine Sprache und vermische nicht Deutsch mit Englisch (store <=> produktgruppe).

    Kommentar

    Lädt...
    X