MySQL: Problem mit JOINT

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

  • MySQL: Problem mit JOINT

    Hallo,

    zunächst: ich habe den JOINT-Thread gelesen
    Trotzdem habe ich ein Problem und zwar folgendes:

    Ich habe 2 Tabellen:

    user_fields:
    fid (key)
    fieldname (varchar255)
    sort (int11)

    user_fields_values
    id (key)
    fid (int11)
    uid (int11)
    value (varchar255)

    Das ganze wird nun so abgefragt, wobei $uid zuvor definiert wurde.

    SELECT fields.fid, fields.fieldname, value.value
    FROM `user_fields` fields
    LEFT JOIN `user_fields_values` value
    ON value.fid=fields.fid
    WHERE uid='$uid'
    ORDER BY fields.sort ASC

    Soweit klappt auch alles wunderbar. Man kann in der Tabelle user_fields Felder definieren und für verschieden $uid's verschiedene Werte hinterlegen. Falls nun aber für eine $uid KEIN Wert vorhanden ist, wird auch der Feldname nicht ausgelesen. Genau das soll aber nicht passieren da ich, falls ein Wert nicht vorhanden ist, einfach den Feldnamen + eine entsprechend Meldung ausgeben möchte.

    Wäre wirklich gut wenn jemand die Lösung parat hätte

    Gruß matze

  • #2
    also wenn du probleme mit dem JOINT hast bist hier zu 100% falsch!

    und was erwartest du? wenn where die bedingung uid=$uid hat dann werden halt nur die zeilen ausgegeben in denen udi=$uid ist.

    vielleicht solltest du dein where um ein " OR uid = NULL "

    dann werden alle mit uid=$uid und alle mit leere uid angezeigt

    Kommentar


    • #3
      zunächst: ich habe den JOINT-Thread gelesen
      Damit wollen wir nichts zu tun habe.

      Da du im PHP-Forum fragst, würde ich vorschlagen dass du einfach die feldnamen vorher (in einem Array) definierst. hat den Vorteil, dass du sogar die Reihenfolge der Ausgabe definieren kannst. (okay, du sortierst sowieso alphabetisch.)

      Ansonsten würd ich spontan noch ein uid = NULL hinzufügen. dann solltest du auch die Felder geliefert bekommen, die keinen wert haben.

      Kommentar


      • #4
        feldnamen in ein array? und dann per implode nach select?!

        Kommentar


        • #5
          nö, eher ne schleife in der du die werte ausgibst.
          mit isset kannste prüfen ob ein entsprechender wert in deiner ergebnis (des Select) vorhanden ist.

          Kommentar

          Lädt...
          X