Mysql Join Abfrage mit php wieder ausgeben?

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

  • Mysql Join Abfrage mit php wieder ausgeben?

    Hallo,

    Bin jetzt das erste mal hier.
    Vielleicht kann mich ja jemand in die richtige Richtung schubsen mit meinem Problem.

    Wie es im Topic steht hab 2 Tabellen. Fürs Verständnis werde ich Beispiel Tabellen & Spalten nehmen.

    Tabelle1: T1 | Spalten: Name, Pos, V_ID
    Tabelle2: T2 | Spalten: V_ID, V_name

    Beide Tabellen haben eine ID mit auto_increment. in T2 ist V_ID der Wert der auto_incremented wird. Bei T1 gibt es eine extra Spalter die ich hier nun nicht aufgelistet habe. Die V_ID wurde manuell eingepflegt und soll nun mit der V_ID aus T2 verglichen werden.

    Die MySQL Syntax scheint soweit zu stimmen. Zumindest bekomme ich diese über PHPMyAdmin richtig ausgelesen. (sieht mal so aus)

    Zum php Code.

    PHP-Code:
    <?php

    include("config.php");
    include(
    "dbconnect.php");

    $sql "SELECT T1.Name, T1.Pos, T1.V_ID,
               T2.V_ID,  T2.V_name,
            FROM
                   T1 
            LEFT JOIN T2 ON T2.V_ID = T1.V_ID
        ORDER BY T1.Name        
        LIMIT 0, 500"
    ;

    $result mysql_query($sql) OR die(mysql_error());

    while(
    $row mysql_fetch_array($result)) {
    echo 
    "$row[0]";

    }
    ?>
    Mein Fehler:
    Parse error: parse error, unexpected T_VARIABLE in

    Wenn ich das so mit nur einer Tabelle mache funktioniert es. Auch wenn ich mehrere Werte ausgebe.
    Da die sql Abfrage an für sich funkioniert denke ich das es an der Ausgabe liegt, bzw daran das ich nun aus 2 Tabellen auslese und dies ein Problem mit der Ausgabe gibt. (BEreits ein Problem beim auffangen der Werte??)

    Leider habe ich im Forum und auch im Netz nichts entsprechendes gefunden.

    Würde mich freuen wenn mir jemand einen Tip geben kann.

    Danke
    gruss
    Zuletzt geändert von Fubbel; 10.06.2005, 10:05.

  • #2
    du siehst aber schon an der formatierung des von dir geposteten codes, dass da was nicht stimmt ???

    warum wird alles ab hier:

    $result = mysql ....

    weiterhin als String gefärbt ??

    gruss

    Kommentar


    • #3
      hups
      peinlich

      ist mir wohl gestern nach dem ganzen probieren passiert. danke

      und jetzt geht es natürlich.....

      gibt es etwas das man hier verbessern oder ändern sollte?

      Also z.B. die Art wie es geschrieben ist oder einfach ein Verbesserungsvorschlag.
      Zuletzt geändert von Fubbel; 10.06.2005, 10:20.

      Kommentar


      • #4
        Erst mal solltest du den Fehler in deinem ersten Posting nicht editieren, damit nachleser den Thread überhaupt verstehen. Ich sehe in deinem Posting nämlich keinen Fehler.

        Und ich würde die $sql Var noch ändern.

        PHP-Code:

        $sql 
        "SELECT T1.Name, T1.Pos, T1.V_ID, ".
                  
        "T2.V_ID,  T2.V_name, ".
                  
        "FROM T1 ".
                  
        "LEFT JOIN T2 ON T2.V_ID = T1.V_ID ".
                  
        "ORDER BY T1.Name ".
                  
        "LIMIT 0, 500"
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          hm k sry.

          war keine Absicht

          Zur Aufklärung. Ich hatte das " am Ende der SQL Abfrage vergessen.

          Werde das mal so ändern.

          Wobei ich nicht ganz nachvollziehen kann aus welchem Grund das so besser sein soll. Mal abgesehen von der besseren Formatierung.

          Kommentar


          • #6
            Auch wenn man da 'nur' mit dem Mysql-Server redet, sollte man doch auf eine ordentliche Schreibweise achten

            Bei mysql_fetch_array($result) empfehle ich immer noch mit anzugeben, welchen Ergebnistyp man gerne hätte, also entweder MYSQL_ASSOC oder MYSQL_NUM für ein assoziatives oder numerisches Array, weil ansonsten beide Indexe daherkommen und somit doppelten Speicher belegen. Also:

            mysql_fetch_array($result,MYSQL_ASSOC)
            oder
            mysql_fetch_array($result,MYSQL_NUM)
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Warum genau kann ich dir auch nicht sagen.

              $sql = " code
              code
              code"

              macht man halt nicht
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar


              • #8
                macht man halt nicht
                warum?

                Kommentar


                • #9
                  weil's beim syntax-highlighting oftmals wie'n Würstchen Eintopf aussieht.

                  ansonsten fiele mir auch kein Grund ein...

                  Kommentar


                  • #10
                    Hab ich doch geschrieben.
                    Weiss nicht genau.
                    Ist wahrscheinlich geschmackssache.
                    Ich kennen niemanden der so Scriptet / Programmiert.
                    gruss Chris

                    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                    Kommentar


                    • #11
                      Um die vielen Leerzeichen in der Query zu sparen *G*

                      PHP-Code:
                      <?php
                      $sql 
                      "SELECT T1.Name, T1.Pos, T1.V_ID,
                                 T2.V_ID,  T2.V_name,
                              FROM
                                     T1 
                              LEFT JOIN T2 ON T2.V_ID = T1.V_ID
                          ORDER BY T1.Name        
                          LIMIT 0, 500"
                      ;

                      echo 
                      $sql."<hr/>";

                      $sql "SELECT T1.Name, T1.Pos, T1.V_ID, ".
                                
                      "T2.V_ID,  T2.V_name, ".
                                
                      "FROM T1 ".
                                
                      "LEFT JOIN T2 ON T2.V_ID = T1.V_ID ".
                                
                      "ORDER BY T1.Name ".
                                
                      "LIMIT 0, 500";

                      echo 
                      $sql;
                      ?>
                      Seht ihr den Unterschied?

                      Ausserdem funktioniert dies Query nicht - da darf kein "," nach T2.V_name sein - weil das ja direkt vom FROM gefolgt wird.
                      Wenn sie funktioniert würde es mich wundern...

                      Zuletzt geändert von prego; 10.06.2005, 12:13.

                      Kommentar


                      • #12
                        PHP-Code:
                        echo "$row[0]"
                        macht man auch nicht.
                        PHP-Code:
                        echo $row[0]; 

                        Kommentar


                        • #13
                          Auch wenns funktioniert
                          gruss Chris

                          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                          Kommentar


                          • #14
                            Hmm, die Maxime "Hauptsache es funktioniert!" oder "Wichtig ist, was hinten rauskommt!" ist ja für den Anfang ok - aber guter Stil beim Programmieren ist schon wichtig.

                            Dafür gibt es mehrere Gründe:
                            1. Es erleichtert das Debugging ungemein.
                            2. Wenn man syntaktisch richtig programmiert gibt es nur in Ausnahmefällen Probleme bei Versionssprüngen (Bsp: php4 -> php5)
                            3. Der Code ist für andere besser lesbar/verstehbar.
                            4. Man findet sich später, weil man zb ne Erweiterung machen will, besser drin zurecht und muss sich nicht ständig fragen: "Was hab ich denn hier gemacht?"
                            5. In den meisten Fällen wird das Script schneller ausgeführt, weil PHP nicht "hintenrum durchs Knie" denken muss.
                            6...

                            Kommentar


                            • #15
                              6. Manche IDE's stolpern bei Highlighting/Folding/Completion/Strukturanalyse.
                              7. ...

                              Kommentar

                              Lädt...
                              X