Problem mit Where Klauseln

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

  • Problem mit Where Klauseln

    Hallo zusammem, ich habe ein Problem mit der Where Klausel.

    Ich möchte gern, dass ich in einer Select abfrage mehrere Where klauseln verwenden kann:

    PHP-Code:

    <?PHP
    $sql 
    "SELECT s.S_Name, s.Version, s.Anz_Installationen, s.Anz_Lizenzen, s.S_ID, p.P_Name, p.P_ID, k.K_Name, h.He_Name
    FROM software AS s JOIN plattform AS p JOIN kategorie AS k JOIN hersteller AS h

    WHERE s.He_ID=h.He_ID  AND s.P_ID=p.P_ID AND  s.K_ID=k.K_ID AND s.P_ID=
    $platt AND He_Name LIKE '%".$Suchen."%'
    OR s.He_ID=h.He_ID  AND s.P_ID=p.P_ID AND  s.K_ID=k.K_ID AND s.P_ID=
    $platt AND S_Name LIKE '%".$Suchen."%'    ";
    ?>
    Hier möchte ich noch zwei weitere OR anhängen aber sobald ich eine mehr anhänge gibt das Select nichts zurück.

    Kann mir jemand helfen
    Zuletzt geändert von Dr.Stone; 12.12.2003, 08:28.

  • #2
    klar bring deinen code mal ins leseriche und Deine Frage ins verständliche
    Wahrscheinlich musst Du ein bisschen deine where bedingung klammern, achja die joins kannst Du auch weglassen, da Du in der where bedingung joinst.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Sorry, die PHP Farbcodierung funtzt nicht....

      Kommentar


      • #4
        klar funzt die wenn man es richtig macht
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          So besser?

          Kommentar


          • #6
            warum werden eigentlich immer wieder reine sql fragen im php forum gestellt?

            schon im betreff steht ja Problem mit Where Klauseln

            *VERSCHIEB*
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              ist das übersichtlich?
              nein
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                kann mir jemand sagen was nich übersichtlich ist?

                Kommentar


                • #9
                  also den where teil kann man doch etwas kürzen:
                  PHP-Code:
                  WHERE s.He_ID=h.He_ID  
                    
                  AND s.P_ID=p.P_ID 
                    
                  AND  s.K_ID=k.K_ID 
                    
                  AND s.P_ID=$platt 
                    
                  AND 
                           (    
                  He_Name LIKE '%".$Suchen."%' 
                            
                  OR S_Name LIKE '%".$Suchen."%'
                           

                  und wenn du schon dabei bist, aliase für die tabs zu verwenden, solltest du es auch durchgehend machen!
                  ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
                  und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

                  Kommentar


                  • #10
                    Danke für deine Hilfe!



                    Habe gar nicht gewusst dass man in where klauseln klammern verwenden kann/darf...
                    Bin noch neu

                    Habe den Code folgendermassen verändert:

                    PHP-Code:
                    WHERE s.He_ID=h.He_ID  AND s.P_ID=p.P_ID AND  s.K_ID=k.K_ID  AND (h.He_Name LIKE '%".$Suchen."%'
                    OR s.S_Name LIKE '%".$Suchen."%'
                    OR s.P_ID=$platt AND s.S_Name LIKE '%".$Suchen."%
                    OR s.P_ID=$platt AND h.He_Name LIKE '
                    %".$Suchen."%)"; 
                    Es gibt aber nix zurück.

                    Searching....

                    Kommentar


                    • #11
                      die letzten zwei zeilen sind unsinnig, weil du schon auf
                      s.S_Name und h.He_Name vorher suchst.

                      denke an das mathematische prinzip ... OR ( ...AND ...) OR ( ...AND...) ...!
                      ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
                      und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

                      Kommentar


                      • #12
                        Vielen Dank nochmals!

                        Mein veränderter Code:

                        PHP-Code:
                        WHERE s.He_ID=h.He_ID  AND s.P_ID=p.P_ID AND  s.K_ID=k.K_ID  AND 
                        (
                        He_Name LIKE '%".$Suchen."%'
                        OR (S_Name LIKE '%".$Suchen."%')
                        OR (
                        s.P_ID=$platt AND S_Name LIKE '%".$Suchen."%')
                        OR (
                        s.P_ID=$platt AND He_Name LIKE '%".$Suchen."%'))"; 
                        Macht irgendwie Mücken...

                        Das Ziel wäre es am Schluss, dass ich eine Software mit plattform suchen kann und die Software auch über alle plattformen suchen kann das heisst suche ohne die Variable $platt...

                        *kaffeetrinkundproblemsuch*

                        Kommentar


                        • #13
                          hast mich net ganz verstanden

                          diese suche:
                          He_Name LIKE '%".$Suchen."%'

                          enthält u.a. alle deine ergebnisse aus:
                          (s.P_ID=$platt AND He_Name LIKE '%".$Suchen."%')

                          und daher unsinnig! und wo sind deine aliase????
                          ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
                          und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

                          Kommentar


                          • #14
                            Ich habe von meiner Firma den Auftrag gekriegt, Ich soll im Skript eine Software Nach einer bestimmten Plattform und ich soll über alle Plattformen suchen können.

                            Aliasse? Sorry wenn ich dich jetzt falsch verstehe, aber für mich ist ein Aliass z.b. h.He_Name also das h.

                            Danke für deine Unterstützung.

                            Kommentar


                            • #15
                              jopp das h. ist ein alias und den hast du beim letzten post wieder vergessen....

                              solltest du dann nicht mit einer if die $platt abfangen? so z.b.:

                              PHP-Code:
                              if ($platt)
                              {
                                  
                              $whereExt "AND ((s.P_ID=$platt AND h.S_Name LIKE '%".$Suchen."%') OR (s.P_ID=$platt AND h.He_Name LIKE '%".$Suchen."%'))";
                              }
                              else
                              {
                                 
                              $whereExt "AND (h.S_Name LIKE '%".$Suchen."%' OR h.He_Name LIKE '%".$Suchen."%')";
                              }

                              $sql "SELECT irgendwas FROm $table WHERE s.He_ID=h.He_ID  AND s.P_ID=p.P_ID AND  s.K_ID=k.K_ID " $whereExt
                              ... und besucht mal den ebay(TM)-browser überhaupt: Lauge
                              und damit das Fragen nen Ende hat: Der Progger davon sitzt mir gegenüber !

                              Kommentar

                              Lädt...
                              X