Suchfeld erweitern !!!

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

  • Suchfeld erweitern !!!

    Ich verwende folgendes script für eine Suchabfrage in einer Datenbank!
    Funktioniert alles super, nur ich kann immer nur ein Suchwort eingeben sonst zeigt er keinen Datensatz an!

    PHP-Code:
    $rs MYSQL_QUERY("SELECT Distinct GID, Strasse, HNR ... from *  where (Strasse like '%$suche%' or HNR like '%$suche%' or ...') and
            Strasse like '%' order by Strasse, (- HNR) DESC limit 
    $pos,$ausgabe"); 
    Ich möchte aber nicht nur nach der Strasse sonder nach Strasse und Hausnummer suchen!
    Welchen Befehl muß ich noch mit einbauen ?

  • #2
    aus dem OR musst du ein AND machen.

    du kannst aber nur entweder oder machen.
    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


    • #3
      das funktioniert leider nicht, es fehlt wahrscheinlich eine info, damit das leerzeichen im suchfeld erkannt wird damit in einer anderen spalte der datenbank gesucht werden kann. ist doch so, oder ?

      Kommentar


      • #4
        ja. das stimmt.

        wenn du aber das erste wort in der einen spalte und das zweite wort in einer anderen spalte suchen willst, empfehle ich dir zwei texteingabefelder den user anzubieten.

        ansonsten könnte dir eine meiner fkts helfen.
        PHP-Code:
          function QueryExtension ($query) {
            
        $ext " AND (";
            
        $query trim(ereg_replace(" +"" "$query));
            
        $qarray explode (" "$query);
            
        $i_max count($qarray);
            for (
        $i=0;$i<$i_max;$i++) {
              
        $ext.= "AdrName LIKE '%".$qarray[$i]."%' OR AdrVorname LIKE '%".$qarray[$i]."%' OR ";
            }
            
        $ext str_replace(" OR )"")"$ext.")");
            return 
        $ext;
          } 
        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
          Abrilein, kannst Du das vieleicht mal erklären? *liebguck*

          Ok, ich ändere meine Frage mal in, wo muß das Ding hin, bzw wann wende ich das an, auf das hier?:

          oder wo?
          PHP-Code:
          $sql="SELECT * FROM gog_suche where keywords LIKE '%".$suche."%' OR description LIKE '%".$suche."%'"
          Zuletzt geändert von Imion; 29.11.2003, 16:31.

          Kommentar


          • #6
            Also ich hab das jetzt mal versucht ein zu bauen, der Code sieht so aus:

            PHP-Code:
            <html>
            <head>
            <title>GoG Suche</title>
            </head>
            <body>
            <?
            if($send=="ok"){
              include("inc/konfiguration.inc.php");
              function QueryExtension ($query)
              {
                $ext = " AND (";
                $query = trim(ereg_replace(" +", " ", $query));
                $qarray = explode (" ", $query);
                $i_max = count($qarray);
                for ($i=0;$i<$i_max;$i++) {
                  $ext.= "keywords LIKE '%".$qarray[$i]."%' AND description LIKE '%".$qarray[$i]."%' OR ";
                }
                $ext = str_replace(" OR )", ")", $ext.")");
                return $ext;
              }
              QueryExtension($query);
              $sql="SELECT * FROM gog_suche where ".$ext."";
              $result= mysql_query($sql) or die(mysql_error());
              while($zeile=mysql_fetch_array($result,MYSQL_ASSOC))
              {
                echo'Hier: '.$zeile["url"].'.';
              }
            }else{
              echo'
                <form action="gog_search.php" method="post">
                <input type="hidden" name="send" value="ok">
                <input type="text" name="query">
                <input type="submit" value="Suchen" name="search" id="search">
                </form>';
            }
            ?>
            </body>
            </html>
            Und der dazu passende Fehler so:

            You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

            Und nu? Weiß irgendjemand was?

            Kommentar


            • #7
              Imionilein...

              du schreibst....
              PHP-Code:
              QueryExtension($query);
              $sql="SELECT * FROM gog_suche where ".$ext.""
              ... in deinem code....

              $ext ist aber nur in der fkt definiert. und es ist ein rückgabewert.

              du kannst es so machen ....

              PHP-Code:
              $ext QueryExtension($query);
              $sql="SELECT * FROM gog_suche where ".$ext.""
              .... oder so ....

              PHP-Code:
              $sql="SELECT * FROM gog_suche where ".QueryExtension($query).""
              vorrausgesetzt ist natürlich das $query irgendwo definiert ist...
              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


              • #8
                Ok, das leuchtet ein, jetzt kapier ich das teil.

                Kommentar

                Lädt...
                X