PHP MySQL Join

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

  • PHP MySQL Join

    Hallo,
    ich habe folgendes Problem:
    ich habe 2 tabellen: aufgaben und aktionen
    es kann mehrer aktionen zu bestimmten aufgaben geben (deshalb to_aufgabe)
    es gibt in jeder tabelle die felder id date_create titel beschreibung
    meine frage ist nun: warum krieg ich unten bei $row['b.date_create'] keine ausgabe. bzw wie greif ich denn auf das date_create aus tabelle b zu? weil das ist ja anders als meine a.date_create

    PHP-Code:
    $sql "SELECT a.date_create, b.date_create
                FROM aufgaben AS a
                LEFT JOIN aktion AS b ON b.to_aufgabe = a.id
              ORDER BY b.date_create DESC"
    ;
    $result mysql_query($sql)
    while(
    $row mysql_fetch_assoc($result)) {
     echo 
    $row['b.date_create'];

    Mess with the Besth, die like the rest!

  • #2
    Hallo,

    das geht so nicht, du musst entweder mit numerischen Indizes auf $row zugreifen oder im SQL Statement Aliase vergeben.

    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


    • #3
      PHP-Code:
      $sql "SELECT a.date_create AS adate, b.date_create AS bdate ..."
      var_dump() zeigt dir, welche Keys in $row existieren.

      Kommentar


      • #4
        var_dump() zeigt dir, welche Keys in $row existieren.
        welche keys ich habe weiß ich ja.
        meine frage war eher wie ich die andern auch mit reinkrieg

        oder im SQL Statement Aliase vergeben.
        das hatte ich auch schon probiert
        PHP-Code:
        SELECT a.date_create AS a.date_createb.date_create AS b.date_create
                        FROM aufgaben 
        AS a
                        LEFT JOIN aktion 
        AS b ON b.to_aufgabe a.id
                      ORDER BY b
        .date_create DESC 
        aber das will auch nich - oder darf ich im alias namen keinen punkt haben? oder wie is das zu verstehen?


        ich habe mich hier ja nur auf das eine feld beschränkt
        muss ich dann für jedes einen alias vergeben? ich dachte es geht sowas in der art:
        SELECT * FROM aufgaben AS a
        LEFT JOIN aktion AS b
        un das ich dann in a. und in b. alle werte hab?
        gibt es da eine einfache methode? oder geht es nur etwas ausführlicher wie oben?
        Mess with the Besth, die like the rest!

        Kommentar


        • #5
          Zitat von Besth Beitrag anzeigen
          oder darf ich im alias namen keinen punkt haben?
          Genau, das darfst du nicht. Mach's einfach wie onemorenerd sagte.
          [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
            hm ok danke für die antwort
            und ne einfachere lösung gibt es nicht?
            Mess with the Besth, die like the rest!

            Kommentar


            • #7
              Zitat von Besth Beitrag anzeigen
              hm ok danke für die antwort
              und ne einfachere lösung gibt es nicht?
              Ähm, nö, aber was ist daran schwer?
              [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


              • #8
                naja das sql statement wird dann sehr lang wenn ich viele felder hab :/
                daher hätte ich es gerne mit einem * irgendwie ^^
                Mess with the Besth, die like the rest!

                Kommentar


                • #9
                  SELECT * ist nur dann ratsam, wenn man wirklich alle Spalten braucht.
                  Dass ein SQL-Statement lang wird, ist zwar nicht schön, aber oft nicht zu vermeiden. Ordentlich formatiert bleibt es im Code übersichtlich. Nur keine Scheu …

                  Kommentar

                  Lädt...
                  X