php datenbankabfrage

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

  • php datenbankabfrage

    hab folgende frage..

    im folgendem Code, passiert eine Abfrage einer variabel, die durch ein Suchbegriff vergeben wird.

    dieser suchbegriff wird nun in der datenbank gesucht...
    das problem ist, der suchbegriff muss genau mit dem datenbankeintrag identisch sein.

    wie kann ich aber das so machen, dass es nicht 100% identisch sein muss? sprich er den suchbegriff/variabel mit den der datenbank auf die letzen buchstabden hin vergleicht...

    beispiel:
    das ganze soll eine art lexikon werden.

    suche ich nun nach "uppe" soll er aber auch "suppe" und "puppe" ausgeben.

    ich hoffe man versteht mich und kann mir helfen.

    PHP Code:

    case "search":
        
    $buffer mysql_query("SELECT * FROM db_lexikon WHERE MATCH (name,text) AGAINST ('".$suche."')");
        if (
    mysql_num_rows($buffer) > 0) {
            echo 
    "<br>";
            while (
    $buffer2 mysql_fetch_array($buffer)) {
                
    $aname str_replace(" ""_"$buffer2["name"]);
                
    $aname str_replace("."""$aname);
                
    $aname str_replace(","""$aname);
                
    $aname str_replace("!"""$aname);
                
    $aname str_replace("?"""$aname);
                
    $aname str_replace("/"""$aname);
                echo 
    "<a href=\"l_".$buffer2["id"]."_".$aname.".html\">".$buffer2["name"]."</a><br>";    
            }
        }
        else
            echo 
    "<br>".$lang["searchno"];
            echo 
    "<!-- pow. b. A. S. ".$suche."-->"
    Last edited by chripo; 17-03-2008, 14:16.

  • #2
    PHP Code:
    WHERE text LIKE '%uppe%' 
    z.b.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Comment


    • #3
      thx für die schnelle hilfe ...

      aber irgendwie steh ich grad aufm schlauch, wie ich das in meinen code einfüge... was ich versuche gibt immer fehlermeldungen

      Comment


      • #4
        Original geschrieben von chripo
        was ich versuche gibt immer fehlermeldungen
        z.b. "kaffe ist leer" oder "tür klemmt" oder doch was anderes?
        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 |


        Comment


        • #5
          das in der zeile, wo ich was grad abgeändert habe, ein fehler im code ist

          mysql_num_rows():

          ist also ganz egal was für fehlermeldungen weil ich grad wie gesagt aufn schlauch stehe wie ich das einfüge genau und da ich das falsch einfüge halt entsprechend fehlermelungen kommen, dass in der zeile falscher code ist.

          hättest also freundlicherweise statt deinen kommentar auch einen nützlichen beitrag hinzufügen können.

          Comment


          • #6
            hättest also freundlicherweise statt deinen kommentar auch einen nützlichen beitrag hinzufügen können.
            und würdest du von zeit zu zeit mal bitte satzzeichen verwenden. das kann ja keiner lesen. und zeig deinen code, denn im raten sind wir hier ziemlich schlecht.

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Comment


            • #7
              also .. wie ich das verstanden habe, müsste ich das wie folgt abändern:

              PHP Code:

               $buffer 
              mysql_query("SELECT * FROM db_lexikon WHERE MATCH (name,text) LIKE ('"%.$suche.%"')"); 
              das ergibt jedoch den fehler, schon beim aufrufen der lexikon.php:

              PHP Code:

              Parse error
              parse errorunexpected '.' in /....../lexikon.php on line 118 
              was wie gesagt die zeile ist, in der ich das abgeändert habe.
              Der fehlercoe bringt also nicht wirklich was, bis auf die erkenntnis, das es falsch eingebaut ist.

              ändere ich die zeile so ab:

              PHP Code:
              $buffer mysql_query("SELECT * FROM db_lexikon WHERE MATCH (name,text) LIKE ('%".$suche."%')"); 
              erscheint der folgende fehler, nach dem absenden des buttons suchen

              PHP Code:
              Warningmysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/web1/html/lexikon/lexikon.php on line 119 

              vielleicht kann jemand, anhand des codes im ersten beitrag, das so abändern, wie es richtig gehört. das wäre vielleicht die einfachste methode und wäre nett.

              Comment


              • #8
                Hallo,

                wenn du MATCH() verwendest, kannst du nicht LIKE '%$suche%' nehmen. Dann musst du AGAINST('$suche') benutzen.

                Comment


                • #9
                  das wäre vielleicht die einfachste methode
                  für dich. das ist aber nicht der sinn dieses forums. entweder
                  PHP Code:
                  WHERE MATCH (name,textAGAINST ... 
                  oder
                  PHP Code:
                  WHERE text LIKE 
                  beides zusammen geht nicht.

                  gruß
                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Comment


                  • #10
                    ok, danke an alle.

                    habs nun wie folgt hinbekommen:

                    PHP Code:

                    $buffer 
                    mysql_query("SELECT * FROM db_lexikon WHERE name LIKE ('%".$suche."%')"); 

                    Comment

                    Working...
                    X