JOIN und so ;)

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

  • JOIN und so ;)

    hiho

    hab nen kleines problem ...
    ich arbeite mit JOIN (inner und left) und habe auch schon einen funktionieren sql-string gebastelt ... (siehe unten)

    mein problem ist, wie komme ich an die daten ...
    und zwar die des LEFT JOINs...
    er bekommt dort zwei ergebnisste ...
    deswegen rallt er das nihct mit $row[] wie beim INNER JOIN ...
    Das AND ist wichtig da ich beide ergebnisse bruache, da es
    unterschiedliche zeilen aus der tabelle developer sein koennen ...
    auch wenn es die gleiche zeile ist, bruach ich beide ergebnisse ..

    nur wie komme ich an das ergebnis vor und an das nach dem AND ..
    also was muss unten hinte $row stehen ...

    hoffe ich hab mich halbwegs verstaendlich ausgedrueckt

    hab die suche benutzt bin aber nur auf andere joinprobleme gestossen

    greetz
    iglo


    PHP-Code:
    $gr_id $_GET["gr_id"];
    $sql "SELECT * FROM hog_gamereviews grw INNER JOIN hog_userdb ud ON ";
    $sql .= "ud.userdb_id= grw.gr_author ";
    $sql .= "LEFT JOIN hog_developer dvp ON dvp.dvp_id = ";
    $sql .= "grw.gr_publisher AND dvp.dvp_id = ";
    $sql .= "grw.gr_developer ";
    $sql .= "WHERE grw.gr_id = ".$gr_id;
    $result sqlQuery($sql);
    $row mysql_fetch_array($resultMYSQL_ASSOC);

    $developer $row["?????"];
    $publisher $row["????"]; 
    Zuletzt geändert von kapitaeniglo; 14.08.2003, 01:11.

  • #2
    ach ja ... und damit es nicht zu leicht ist ...
    will aus den beiden dann nicht die nummer (dvp_id), sondern aus den beiden zeilen jeweils ein feld mit nem namen ....

    weiss nicht ob das dadurch noch schwieriger wird, aber is grad nen bissel spaet und mit dem denken laeuft es nciht mehr so gut

    greetz
    iglo

    Kommentar


    • #3
      AND: zelle x und zelle y der selben zeile müssen den gewünschten wert haben

      OR: zelle x oder zelle y muss den gewünschten wert haben

      probier mal OR
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        aaaah ich dummerchen ... and und or verwechselt ...

        werds eben ausprobieren ...

        gruss
        iglo

        Kommentar


        • #5
          hiho

          also mit dem OR war schon mal ein schritt in die richtige richtung ...

          aber ich moechte ja beide werte, den vor dem OR und den dancah ...

          wie ruf ich denn nach der abfrage BEIDE werte auf ...

          den ersten bekomme ich ueber

          $row["dvp_name"]

          nun moechte ich von dem nach dem OR aber das gleiche feld abfragen ...
          wie geht das ?

          gruss
          iglo

          Kommentar


          • #6
            genauso?

            ich versteh grad nich was du meinst
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              also im LEFT JOIN ist ja nen OR drinne ...
              mein problem dabei ist :
              ich will beide, also die daten die den vergleich vor dem OR matchen und diejenigen die den danach matchen ...

              nun ist mein problem aber ..
              wie ruf ich die auf ...

              also die variablen in php ...
              weil die haben ja eigentlich den gleichen varnamen, da sie
              beide aus einer tabelle sind ...


              verstaendlicher ????

              gruss
              iglo

              Kommentar


              • #8
                nich wirklich

                was passiert denn, wenn du den gleichen arrayindex nimmst?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  ich bekomme immer nur das ergebnis , was dat teil vor dem OR liefert, was ja theoretisch auch klar ist, da er da was findet und denkt er ist fertig ...

                  ich bruach aber beide ...

                  ich weiss nur nicht wie ich das hinbekomme .....


                  na ... zur not gibt es dann doch ne zweite sqlabfrage ....

                  Kommentar


                  • #10
                    geht das vielleicht auch so:

                    PHP-Code:
                    select *, if(dvp.dvp_id=grw.gr_publisher,grw.gr_publisher,0) as publisher, if(dvp.dvp_id=grw.gr_developer,grw.gr_developer,0) as developer from .... 
                    dann würde im Feld "publisher" der gr_publisher stehen oder 0, entsprechend gr_developer im Feld "developer"

                    Kommentar


                    • #11
                      das sieht vom prinzip her gut aus ... nur leider liefert es mir immer 0 ....

                      und das kann net sein ....

                      gruss
                      iglo

                      Kommentar


                      • #12
                        sorry, die Werte müssen vertauscht werden -> wenn die Bedingung falsch ist, dann wird der erste Teil zugewiesen, ansonsten der zweite. Also sollte es

                        if(dvp.dvp_id=grw.gr_publisher,0,grw.gr_publisher)

                        heissen oder du machst anstatt dvp.dvp_id=grw.gr_publisher ein Test auch Ungleichheit mit !=

                        P.S.: vergiss die letzte Idee. Verwirrt nur.
                        Zuletzt geändert von BrainBug; 14.08.2003, 11:02.

                        Kommentar


                        • #13
                          jetzt klappt es bei einem ... beim anderem nihct ...
                          aber ich kuck ob ich da nicht nur nen schreibfehler hab


                          scheinbar liegt es jetzt noch an meinem leftjoin .....

                          da nimmt er nur das, was vor dem OR steht ... ich will aber das vor und das nach dem or ....

                          gruss
                          iglo

                          Kommentar


                          • #14
                            hab jetzt meinen denkfehler gefunden ...

                            hab das statement einfach mal in phpmyadmin eingegeben ...
                            und ich erhatle 2 zeilen ... was ja eigentlich klar ist ...
                            ich bin bisher aber nur davon ausgegangen das ich eine erhalte t....


                            naja ... problem geloest ...

                            der wert von publisher steht in der ersten zeile
                            der von developer in der zweiten ...

                            thx an alle die sich die muehe gemacht haben mir zu helfen ...

                            greetz
                            iglo

                            Kommentar

                            Lädt...
                            X