Left Join - Array liefet andere Werte als in phpmyadmin

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

  • Left Join - Array liefet andere Werte als in phpmyadmin

    Hallo liebe com,

    ich steh seit gestern vor dem Join Thema,
    habe eine admin_log Tabelle und eine member Tabelle

    in der adminl_log speichere ich folgendes ab:

    | al_date | al_ip | al_member_id | al_admin_id | al_action |al_block_reason|

    Meine Abfrage
    PHP-Code:
    select AL.*, M.m_usernameM.m_lastnameM.m_surnameA.m_usernameA.m_surnameA.m_lastname from `admin_log` as AL 
        left join 
    `members` as M on (M.id AL.al_member_id
        
    left join `members` as A on (A.id AL.al_admin_id
    array wirft mir das aus....

    [0] => Array
    (
    [al_date] => 1287592347
    [al_ip] => 86.32.*.*
    [al_member_id] => 2
    [al_admin_id] => 1
    [al_action] => User gesperrt
    [al_block_reason] => 0
    [al_func] => 1
    [m_username] => username
    [m_lastname] => Nachname
    [m_surname] => Vorname
    )
    so wie kann ich es anstellen das mir das array beide namen ausgibt also das von dem User (al_member_id) und von den ausführenden Admin (al_admin_id)... im PHP Admin gibt er mir beide Namen zurück nur in PHP nicht -.-

    wo liegt den mein gedanken fehler oder wie kann ich es anstellen das er mir beide namen auswirft und wie spreche ich die dann an?.

    Kann mir bitte irgendwer das Brett vor meinen Kopf wegmachen??^^

  • #2
    Führe die vermissten Spalten mal explizit im SELECT-Teil auf.

    Wieso präfixt du alle Spalten in einer Tabelle mit a_ bzw. m_? Das bringt doch nichts, macht nur die SQL-Queries schwer lesbar und führt zu häßlichen Arraykeys. Und wieso brichst du diese Konvention bei den id-Spalten?

    Warum joinst du die Member-Tabelle zweimal dazu? Was genau willst du mit dieser Query erhalten?

    Kommentar


    • #3
      ich habe im Log ja nur die IDs (al_member_id | al_admin_id) stehen und wollte damit die dazugehörigen namen mir holen und dachte das ich das so trennen muss -.-

      Kommentar


      • #4
        Das hilft mir nicht weiter. Ich weiß nicht was du für ein Log meinst. Ist aber auch egal. Irgendwoher hast du IDs von Benutzern und Admins. Zu diesen IDs möchtest du die Namen aus der Datenbank holen. Soweit hab ich es begriffen.
        Aber warum brauchst du dafür JOIN?

        Bitte beschreibe dein Vorhaben mal verständlich, damit das große Fragezeichen aus meinen Kopf verschwindet.

        Kommentar


        • #5
          Hallo,

          du musst diese Spaltenreferenzen aliasen, denn wenn du es mit PHP als assoziatives Array abrufst, bekommst du sonst nur den ersten Spaltennamen von zwei gleichen.

          Wenn du also sowas wie
          Code:
          select M.m_username as member_username, A.m_username as admin_username, ...
          selektierst, hast du auch beide Aliasse als Schlüssel im Array drin.

          Gruß,

          Amica
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Zitat von onemorenerd Beitrag anzeigen
            Das hilft mir nicht weiter. Ich weiß nicht was du für ein Log meinst. Ist aber auch egal. Irgendwoher hast du IDs von Benutzern und Admins. Zu diesen IDs möchtest du die Namen aus der Datenbank holen. Soweit hab ich es begriffen.
            Aber warum brauchst du dafür JOIN?

            Bitte beschreibe dein Vorhaben mal verständlich, damit das große Fragezeichen aus meinen Kopf verschwindet.
            in der Datenbank ist eine Log die mir die aktivitäten der Admins mitloggt und ich wollte nicht immer die Namen mitspeichern falls jemand seinen Nick ändert das dieser dann auch angezeigt wird und nicht die alten stehen. ....
            admin_id und member_id

            Kommentar


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              Hallo,

              du musst diese Spaltenreferenzen aliasen, denn wenn du es mit PHP als assoziatives Array abrufst, bekommst du sonst nur den ersten Spaltennamen von zwei gleichen.

              Wenn du also sowas wie
              Code:
              select M.m_username as member_username, A.m_username as admin_username, ...
              selektierst, hast du auch beide Aliasse als Schlüssel im Array drin.

              Gruß,

              Amica

              Vielen Dank so klappt es wunderbar

              Kommentar

              Lädt...
              X