select aus 2 tabellen

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

  • select aus 2 tabellen

    Hallo!

    Bin mal wieder ratlos. Ich möchte diesmal 2 Tabellen gleichzeitig befragen...

    $id = "12345";

    die erste Tabelle heißt userdata und die zweite tabelle heißt userbody.
    und in beiden möchte ich nach $id suchen. als ergebnis hätte ich dann gerne $vorname (aus userdata) und $gewicht (aus userbody).

    ich hab schonmal gelesen, dass das geht - nur ich weiß absolut nicht wie ich das select schreiben soll und wie ich dann aus diesem verknüpften select auch diese beiden gefüllten variablen bekomme.

    kann mir da jemand evtl. einen tip geben oder einen link zu einem beispiel-code den ich mir mal anschauen kann?

    danke

  • #2
    http://www.php-resource.de/forum/sho...threadid=28292

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      hm...

      ich habs jetzt einfach mal probiert aber irgendwas is noch falsch am selcect oder?

      $result=MYSQL_QUERY ("SELECT d.vorname s.gewicht FROM user_data d, user_stats s WHERE id = '64258' ");
      $num = mysql_num_rows($result);
      if ($num<=0)
      {
      echo "Fehler";
      }
      for($i<0; $i<$num; $i++)
      {
      $vorname = mysql_result($result, $i, "d.vorname");
      $gewicht = mysql_result($result, $i, "s.gewicht");
      echo "$vorname $gewicht";
      }

      Kommentar


      • #4
        http://www.php-resource.de/forum/sho...threadid=50454


        Wozu sind die Threads eigentlich sticky?

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Re: hm...

          Hallo hardbase,

          du solltest dir vielleicht erst einmal ein paar Grundlagen zulegen.

          Original geschrieben von hardbase

          $result=MYSQL_QUERY ("SELECT d.vorname s.gewicht FROM user_data d, user_stats s WHERE id = '64258' ");
          $num = mysql_num_rows($result);
          if ($num<=0)
          {
          echo "Fehler";
          }
          for($i<0; $i<$num; $i++)
          {
          $vorname = mysql_result($result, $i, "d.vorname");
          $gewicht = mysql_result($result, $i, "s.gewicht");
          echo "$vorname $gewicht";
          }
          ^^Den Codeschnipsel kannst du entsorgen, wird so nie funktionieren...

          Kommentar


          • #6
            Ich kann einfach nicht verstehen, wieso in fast allen Foren die Fragenden erstmal angemacht werden müssen. Wenn sie die Regeln nicht beachten verstehe ich das ja, obwohl das dann eher so nebenbei erwähnt und nicht der Inhalt der gesamten Antwort sein sollte.

            @gourmet: Deinen Post zum Beispiel halte ich für reine Zeitverschwendung. Nicht nur Deine sondern auch derjeniger die das lesen.

            Zum Problem: Du musst das Feld angeben, dass sich gleichen soll:

            PHP-Code:
            SELECT
                d
            .vorname,
                
            s.gewicht
            FROM
                user_data d
            ,
                
            user_stats s
            WHERE
                d
            .id s.id
                
            AND d.id '64258' 
            Ich weiß jetzt nicht wie MySQL das handhabt. Schöner wäre sicher die JOIN-Methode explizit anzugeben. Etwa so:

            PHP-Code:
            SELECT
                d
            .vorname,
                
            s.gewicht
            FROM
                user_data d
            LEFT JOIN
                user_stats s
            ON
                d
            .id s.id
            WHERE
                d
            .id '64258' 
            Beim nächsten Problem kannst Du auch den Fehler abfragen mit

            PHP-Code:
            $dblink mysql_connect(...);
            mysql_select_db(...);
            $string 'SELECT fehla';
            if (!
            $result=mysql_query($string))
                echo 
            '['.mysql_errno($dblink) . "] " mysql_error($dblink); 
            Wenn dann alles funktioniert, gibt es auch eine etwas elegantere Methode die Ausgabe zu bewerkstelligen:

            PHP-Code:
            while($user mysql_fetch_array($result))
            {
                echo 
            $user['vorname'].' '.$user['gewicht'];

            Ich hoffe ich konnte helfen...

            Kommentar


            • #7
              Ich weiß jetzt nicht wie MySQL das handhabt. Schöner wäre sicher die JOIN-Methode explizit anzugeben.
              Das meiste wird optimiert, JOINs sind dennoch marginal schneller und gerade bei vielen Bedingungen wesentlich übersichtlicher.
              OffTopic:
              Ich kann einfach nicht verstehen, wieso in fast allen Foren die Fragenden erstmal angemacht werden müssen. Wenn sie die Regeln nicht beachten verstehe ich das ja, obwohl das dann eher so nebenbei erwähnt und nicht der Inhalt der gesamten Antwort sein sollte.
              Ganz einfach: erstens gibt es für Querys mit mehren Tabellen einen extra Thread. Genau danach hat der TE gefragt. Dann gibt es einen Thread wo steht wie man Fehler ausgeben lässt. Was hilft wenn ich weiß das die Query nicht funktioniert? Ohne Fehlermeldung kann ich schwer sagen wo das Problem ist. Außerdem sollte das einfach dazugehören, der TE erwartet ja das auf seine Frage vernünftig geantwortet wird, also kann er sich auch an bestimmte Regeln halten und dazu gehört halt das man erstmal versucht sich selber zu informieren.
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #8
                @SLind
                Es steht dir frei auf solche Threads in allumfassender Art und Weise zu antworten - aber glaube mir, spätestens wenn du zum 10 Mal einen Post über eine DinA4-Seite geschrieben hast, der sich doch inhaltlich nur marginal von den vorigen unterscheidet, hast du die Schnauze dann auch irgendwann voll...

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  Original geschrieben von ghostgambler
                  @SLind
                  Es steht dir frei auf solche Threads in allumfassender Art und Weise zu antworten - aber glaube mir, spätestens wenn du zum 10 Mal einen Post über eine DinA4-Seite geschrieben hast, der sich doch inhaltlich nur marginal von den vorigen unterscheidet, hast du die Schnauze dann auch irgendwann voll...
                  OK das klingt einleuchtend

                  Kommentar

                  Lädt...
                  X