Announcement

Collapse
No announcement yet.

SQL Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Abfrage

    Hallo liebe Community....

    Ich möchte folgenden SQL Abfrage machen:

    Code:
    $sqlget = "SELECT * FROM stelle WHERE sjr_beruf LIKE '%Mauerer%';
    zum Beispiel....

    Versuche dasAllerdings mit einer Variable, mein Query sieht also so aus:

    Code:
    $sqlget = "SELECT * FROM stelle WHERE sjr_beruf LIKE '".$search."'";
    Jetzt muss ich da allerdings noch irgendwie meine Buchstaben platzhalter : "%" einfügen sonst kann ich da ja nich zum Beispiel nach: "Trockenmaurer" suchen lassen weil sonst findet er das ja nich....

    Was kann ich denn da machen?

  • #2
    Wenn ich dich richtig verstanden habe ist jetzt deine frage wie du die % zeichen einfügen kannst.

    Falls das die frage ist, hier die Lösung
    $sqlget = "SELECT * FROM stelle WHERE sjr_beruf LIKE '%".$search."%'";

    Comment


    • #3
      Funktioniert nicht!

      Ich hab einen Eintrag in meiner Datenbank, der Beruf ist "Maurer"..wenn ich Maurer eingebe findet er diesen Eintrag...gebe ich aber "Maurerii" ein findet er den Eintrag aufgrund der zwei zusätzlichen Buchstaben nicht...

      Wie kann ich das beheben?
      Zuletzt editiert von LØRdSe; 31.12.2007, 00:34.

      Comment


      • #4
        deine abfrage ist ja auch so gemacht, dass du alles aus der DB suchst, das "Mauerer" im wort stehen hat, wenn du "Mauerer" eingibst. LOGISCHERWEISE findet der nichts, wenn du "Mauererii" eingibst, weil du Mauerii nicht in der DB stehen hast. Deine SQL-Abfrage würde nämlich dann nach allem suchen, das "Mauererii" im Wort hat, also z.B. "Mauererii1".

        was du brauchst, ist genau das umgekehrte. du suchst nicht wörter, von denen ein teilwort deinem suchbegriff entspricht, sondern du suchst wörter, die einem teilwort deines suchbegriffs entsprechen. das umzusetzen ist allerdings kaum möglich, denn woher soll das script wissen, welche wörter im nonesense-suchwort enthalten sind?
        Zuletzt editiert von compuhelpnet; 30.12.2007, 22:38.

        Comment


        • #5
          Nein ich meine:

          in der Datenbank ist der Eintrag: "Maurer" enthalten...User gibt jetzt zum Beispiel "Trockenmaurer" ein...jetzt will ich das alle Einträge ausgeworfen werden in denen ein Teilwort des Suchbegriffs enthalten ist...das heißt quasie durch "%" kann ich unendlich viele Zeichen vor und hinter dem Datenbankeintrag ntrivial hinzufügen...demzufolge sollte wenn ich "Trockenmaurer" eingebe der Datenbankeintrag "Maurer" gefunden werden...

          Comment


          • #6
            wenn ich dich jetzt richtig verstehe sieht die logic für mich wie folgt aus: wenn du trockenmaurer eingibst, würde er nach deiner logic alles ausgeben, was folgende buchstaben enthält: t,r,o,c,k,e,n,m,a,u,r,e,r;. woher soll das script denn wissen, was teilwörter sind und was nicht?

            Comment


            • #7
              Hallo,

              versuchs mal mit [highlight=sql]
              $sqlget = "SELECT * FROM stelle WHERE ".$search." LIKE '%' || sjr_beruf || '%'";
              [/highlight]

              Gruß Falk

              Originally posted by LØRdSe View Post
              Nein ich meine:

              in der Datenbank ist der Eintrag: "Maurer" enthalten...User gibt jetzt zum Beispiel "Trockenmaurer" ein...jetzt will ich das alle Einträge ausgeworfen werden in denen ein Teilwort des Suchbegriffs enthalten ist...das heißt quasie durch "%" kann ich unendlich viele Zeichen vor und hinter dem Datenbankeintrag ntrivial hinzufügen...demzufolge sollte wenn ich "Trockenmaurer" eingebe der Datenbankeintrag "Maurer" gefunden werden...
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment


              • #8
                Code:
                Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /guesthouse/hkt-hwi/public_html/lehrstelle/sjr-get.php on line 31

                Comment


                • #9
                  Ich hab das ganze mal auf meinem MSSQL Server rennen lassen, obs auf Mysql funktioniert weiss ich net, aber so:

                  SELECT * FROM zm_entrys WHERE ".$search." LIKE '%'+sjr_beruf+'%'";

                  hat das dann bei mir geklappt

                  //EDIT: Natürlich hab ich andere tabellen und alles gehabt, aber vom prinzip her...

                  Comment


                  • #10
                    Hab die Querys mal noch ein bissn verändert weil ich sonst wieder die gleichen Fehler bekommen habe:

                    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /guesthouse/hkt-hwi/public_html/lehrstelle/sjr-get.php on line 31
                    Die beiden Querys sehen jetzt so aus:
                    Code:
                    $sqlget = "SELECT * FROM stelle WHERE '.$search.' LIKE '%' || sjr_beruf || '%'";
                    Code:
                    SELECT * FROM stelle WHERE '.$search.' LIKE '%'+sjr_beruf+'%'";
                    Allerdings haben wir ein Problem, jetzt werden mir alle Einträge in der Datenbank anstandslos ausgegeben..

                    Das is doch echt zum Heulen...

                    Aber danke für eure Hilfe...

                    Comment


                    • #11
                      Originally posted by Falk Prüfer View Post
                      Hallo,

                      versuchs mal mit [highlight=sql]
                      $sqlget = "SELECT * FROM stelle WHERE ".$search." LIKE '%' || sjr_beruf || '%'";
                      [/highlight]

                      Gruß Falk
                      ... und wenn die String-quotierung nicht in $search enthalten ist, dann muß es so aussehen:
                      PHP Code:
                      $sqlget "SELECT * FROM stelle WHERE '".$search."' LIKE '%' || sjr_beruf || '%'"
                      Also ALLE einfachen und doppelten Hochkommas beachten!

                      Gruß Falk
                      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                      Comment


                      • #12
                        upps, ich weiss warum meiner net funktuioniert, da war noch meine tabelle drin gestanden

                        ... und wenn die String-quotierung nicht in $search enthalten ist, dann muß es so aussehen:

                        PHP Code:
                        $sqlget "SELECT * FROM stelle WHERE '".$search."' LIKE '%' || sjr_beruf || '%'"
                        stimmt, da war ja was^^, probier das mal, und ansonsten post halt mal ein kleines stückchen von dem was in der db steht, was du eingibst, und was am ende rauskommt, vll kommen wir ja dann auf die lösung, evtl kann auch ein stückchen php code net schaden

                        Comment

                        Working...
                        X