php datenbankabfrage

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

  • 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."-->"
    Zuletzt geändert von chripo; 17.03.2008, 15: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

    Kommentar


    • #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

      Kommentar


      • #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 |


        Kommentar


        • #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.

          Kommentar


          • #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

            Kommentar


            • #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.

              Kommentar


              • #8
                Hallo,

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

                Kommentar


                • #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

                  Kommentar


                  • #10
                    ok, danke an alle.

                    habs nun wie folgt hinbekommen:

                    PHP-Code:

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

                    Kommentar

                    Lädt...
                    X