2 Tabellen mit "Where" auslesen

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

  • 2 Tabellen mit "Where" auslesen

    Hallo,
    Ich habe meine Schwierigkeiten beim Auslesen von 2 Tabellen mit einer Abfrage wobei bei beiden Tabllen eine Where-Funktion greiffen soll.

    Hier erstmal beide einzelnen Abfragen:
    PHP-Code:
    // 1. Abfrage
    $abfrage1="SELECT id, name from froll where id=".$_GET["fid"];

    // 2. Abfrage
    $abfrage2="SELECT id, fid, topic, created from troll where fid=".$_GET["fid"]; 
    Wie kann ich diese beiden Abfragen in eine packen, ist es überhaupt möglich??
    Danke und cu,
    akrab

  • #2
    schaust du ins manual: http://dev.mysql.com/doc/mysql/de/join.html
    Kissolino.com

    Kommentar


    • #3
      Gut Wurzel, da war ich schon, und es hat mich leider nicht sehr viel weiter gebracht. Werd ich mir woanders ne ergänzungshilfe holen...

      geht das überhaupt mit 2 where optionen in einer abfrage??

      PS: IFYYMFTR
      Zuletzt geändert von akrab; 21.07.2005, 18:51.

      Kommentar


      • #4
        was ist denn an dem ersten beispiel
        select t1.name, t2.gehalt from angestellte AS t1, info AS t2
        where t1.name = t2.name;
        missverständlich?

        ps: IFYYMFTR ist hoffentlich nix unanständiges
        Kissolino.com

        Kommentar


        • #5
          http://www.php-resource.de/forum/sho...threadid=28292 schon gelesen?
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            Nach dem jetzigen Stand würde es so aussehen (was nicht richtig ist...)

            PHP-Code:
            $abfrage3="SELECT f.id, f.name, t.id, t.fid, t.topic. t.created from
            froll as f where id="
            .$_GET["fid"].", troll as t where fid=".$_GET["fid"]; 
            Wie ich 2 Tabellen in einer Abfrage auslese ist mir klar aber nicht wie ich 2 Where-Optionen reinbringe für jeweils eine Tabelle...

            Kommentar


            • #7
              aber nicht wie ich 2 Where-Optionen reinbringe für jeweils eine Tabelle...
              einfach kombinieren, mittels AND oder OR, je nach situation ...
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                Original geschrieben von akrab
                Nach dem jetzigen Stand würde es so aussehen (was nicht richtig ist...)

                PHP-Code:
                $abfrage3="SELECT f.id, f.name, t.id, t.fid, t.topic. t.created from
                froll as f where id="
                .$_GET["fid"].", troll as t where fid=".$_GET["fid"]; 
                Wie ich 2 Tabellen in einer Abfrage auslese ist mir klar aber nicht wie ich 2 Where-Optionen reinbringe für jeweils eine Tabelle...
                versuchs mal lieber so:
                PHP-Code:
                $abfrage3="SELECT 
                                        f.id, f.name, t.id, t.fid, t.topic. t.created 
                                 from
                                        froll as f, troll as t
                                 where f.id="
                .$_GET["fid"]." and t.fid=".$_GET["fid"]; 
                und benutze mysql_error()
                Kissolino.com

                Kommentar


                • #9
                  Danke, ich habe nun:

                  PHP-Code:
                  <?php
                  error_reporting
                  (E_ALL&~E_NOTICE);
                  require (
                  'connect.php');
                  $abfrage="SELECT 
                                          f.id, f.name, t.id, t.fid, t.topic. t.created 
                                   from
                                          froll as f, troll as t
                                   where f.id="
                  .$_GET["fid"]." and t.fid=".$_GET["fid"];
                  $ergebnis=mysql_query($abfrage) or die(mysql_errno().": ".mysql_error());
                  $row=mysql_fetch_array($ergebnis);
                  ?>
                  Und als Fehlermeldung:
                  1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.created from froll as f, trol' at line 2

                  Diesen Fehler hatte ich sonst beim mysql_fetch_array wenn z.B. ein Zeichen fehlte oder so... hab ich da nun was übersehen??

                  Kommentar


                  • #10
                    verstanden hast du nicht, was da passiert oder?

                    der alias ist nur ein synonym für die angesprochene tabelle ... also wenn du anweist:
                    "SELECT t.spalte FROM tabelle AS t WHERE ...." könntest du stattdessen auch schreiben "SELECT tabelle.spalte FROM tabelle WHERE ...."

                    es macht natürlich sinn, dass in der tabelle, die durch den alias beschrieben wird, auch die angesprochenen spalten vorhanden sind.

                    jetzt klarer?

                    ps: nur der vollständkeit halber, das "as" kann man weglassen. ist aber erstmal belanglos.
                    Kissolino.com

                    Kommentar


                    • #11
                      Original geschrieben von akrab

                      $abfrage="SELECT
                      f.id, f.name, t.id, t.fid, t.topic. t.created
                      from
                      froll as f, troll as t
                      where f.id=".$_GET["fid"]." and t.fid=".$_GET["fid"];
                      [/PHP]

                      Und als Fehlermeldung:
                      1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.created from froll as f, trol' at line 2
                      Dann schau dir bitte mal an, was an deiner Query falsch is.
                      Es hilft meistens das Ding in phpMyAdmin oder dem DB-Tool deiner Wahl auszprobieren.
                      Kleiner Tipp: Ohne den Sinn zu betrachten - Schreibfehler!

                      Kommentar


                      • #12
                        verstanden hast du nicht, was da passiert oder?

                        der alias ist nur ein synonym für die angesprochene tabelle
                        Das ist soweit schon alles klar, Wurzel

                        Okay, ich hab den Schreibfehler gefunden, er war an dieser Stelle:

                        PHP-Code:
                        t.topict.created 
                        Nun zeigt er auch keine Fehlermeldung mehr an.
                        Ich hoffe nun alle notwendigen Daten zusammen zu haben.

                        Dank euch soweit für die Unterstützung!

                        Gruß,
                        akrab

                        Kommentar


                        • #13
                          PHP-Code:
                          $abfrage="SELECT 
                                                  f.id, f.name, 
                                                  t.id, t.fid, t.topic, t.created, 
                                                  a.id, a.tid, a.fid, a.user, a.topic, a.nachricht, a.created
                                           from
                                                  gscp_forum as f, gscp_threads as t, gscp_answers as a where 
                                                  f.id="
                          .$_GET["fid"]." and t.fid=".$_GET["fid"].
                                                  and a.fid="
                          .$_GET["fid"]." and a.tid=".$_GET["tid"];
                                                  
                                                  
                          $ergebnis=mysql_query($abfrage) or die(mysql_errno().": ".mysql_error());
                          $row=mysql_fetch_array($ergebnis);

                          echo 
                          $row["name"]."<br>";
                          echo 
                          $row["fid"]."<br>";
                          echo 
                          $row["id"]."<br>"
                          Beim letzten
                          PHP-Code:
                          and a.fid=".$_GET["fid"]." and a.tid=".$_GET["tid"]
                          macht er Probleme. Wenn ich das letzte and + Anhang weglasse klappt es. Kann man nicht 2 mal
                          PHP-Code:
                          a.irgendwas="aala" 
                          in der where funktion haben??

                          Kommentar


                          • #14
                            Beim letzten [...] macht er Probleme.
                            heißt?
                            Die Zeit hat ihre Kinder längst gefressen

                            Kommentar


                            • #15
                              ...sry. Klar, gedankenlesen könnt ihr net... Is ein ähnlicher Fehler, wie vorhin.

                              1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 8

                              Kommentar

                              Lädt...
                              X