Maa: /mysql: Join Problem

Guten Tag,

möchte in diesem Thread zu einem noch ungelösten Problem zurückkehren, das sich auf folgenden Thread bezieht:

http://forum.de.selfhtml.org/archiv/2004/7/t84725/

Hallo Ilja,

erst einmal sind deine spaltennamen sehr schlecht. sie sollten in aller regel so gewählt sein, dass ein "fremder" den sinn der spalte auch ohne gross zu grübeln erahnen kann.

OK, werde mir das für die Zukunft merken! ;) Danke

zum anderen handelt es sich nicht um eine linktabelle, sondern man nennt das ding beziehungstabelle. das mag kleinlich erscheinen, aber so haben die kinder halt einen namen und es hilft einander auszutauschen, gerade in bezug auf html kann link ein verwirrender begriff sein.

Danke für die Aufklärung. Werde auch dieses beherzigen!

was nun dein problem angeht, so sieht alles auf den ersten blick ganz gut aus, er sollte auch beide erfassen.

Leider nicht. Habe mir das Array mit print_r() angeschaut. Es wird nur einer Person erfasst.

zwei mögliche ursachen könnten sein, dass für den zweiten diese
bedingung (e.lang = '".$language."') nicht erfüllt wird

Doch, doch. "lang" ist eine Spalte in der events-Tabelle. Trifft also auf beide zu.

oder aber die ausgabe ist so geschrieben, dass sie immer nur einen »» datensatz ausgibt. ob das der fall ist, sieht man oftmals, ob die »» ausgabe innerhalb ein schleife (while) ist.

Das verstehe ich nicht genau. Also im Array kommt ja nur eine Person vor. Kann also nicht mit der HTML Ausgabe zu tun haben.

  1. yo,

    Das verstehe ich nicht genau. Also im Array kommt ja nur eine Person vor. Kann also nicht mit der HTML Ausgabe zu tun haben.

    relationale datenbanken haben die eigenschaft, dass sie die ergebnisse einer abfrage immer in zwei dimensionen darstellen, sprich in tabellenform. deswegen auch der name relationale datenbanken (relation = tabelle). aber ich schweife ab... ;-)

    wenn du jetzt eine abfrage startest und das ergebnis anzeigen willst, dann holt er dir in aller regel nicht die komplette ergebnisliste, sondern du musst in quasi dazu bewegen, dir den  ersten datensatz aus der ergebnistabelle zu geben und speichert die jeweiligen --> spalten <-- in einem array. willst du den zweiten auch noch haben, muss du ihm wieder sagen, hole mir jetzt den nächsten datensatz aus der ergebnistabelle, usw.

    weil man nicht immer genau weiss, wieviele datensätze eine select abfrage hervorbringt, macht man diesen "datensatz holen" befehl in eine sogenannte while schleife, die halt solange die einzelnen datensätze abgreift, bis keine mehr da sind. das array wird dann jedesmal mit den werten des aktuellen datensatzes aufgefüllt und sind somit für jeden datensatz gleich ansprechbar, meistens über einen index, aber es kann sich auch um ein assoziatives (array mit spaltennamen) array handeln.

    in dem array steht also immer nur ein datensatz mit seinen spalten. willst du alle datensätze ausgeben, musst du das in die while schleife packen.

    Ilja

    1. Hast du dafür mal ein Beispiel ?

      Danke

      1. yo,

        Hast du dafür mal ein Beispiel ?

        ich denke mal, es wäre sinnvoller, wenn du den teil hier postest, der die ausgabe des datenbankzugriffs erzeugt.

        Ilja