Wolfgang: Logische Verknüpfungen (SQL)

Hallo!
Biete eine Suchfunktion auf meiner Website an (z. B. nach Schlagwörtern im Bereich "Links"). Zurzeit kann man aber nur einen Suchbegriff eingeben (... where <spaltenname> like $SUCHENACH...). Schöner wäre es natürlich, wenn eine logische Verknüpfung mehrer Suchbegriffe möglich wäre (AND, OR bzw. +, |). Bevor ich stundenlang bastle: Kennt ihr ein Skript, das den übergebenen String per EXPLODE zerlegt und ein entsprechendes SQL-Statement zusammenbastelt? Wäre super! Danke schon mal!
Wolfgang

  1. Hallo!

    Biete eine Suchfunktion auf meiner Website an (z. B. nach Schlagwörtern im Bereich "Links"). Zurzeit kann man aber nur einen Suchbegriff eingeben (... where <spaltenname> like $SUCHENACH...). Schöner wäre es natürlich, wenn eine logische Verknüpfung mehrer Suchbegriffe möglich wäre (AND, OR bzw. +, |).

    http://px.sklar.com/code-pretty.html?code_id=216
    bzw: http://www.php.comzept.de/index.php4?TEMPLATE=listing&chapter=8&book=1&script=genwhere

    MfG, André Laugks

    1. Hallo,

      $sb=trim(strtolower($sb)); //Formulardaten

      if($cb==''){                //log Verknüpfung
      $cb=" OR ";
      }
      else{
      $cb=" AND ";
      }

      $worte=array_unique(explode(" ",$sb));   //Leerzeichen raus
      if(in_array("",$worte)){
      $nichts=array_search("",$worte);
      unset($worte[$nichts]);
      sort($worte);
      }

      function where($a){                   //where Bed. definieren
      global $worte;
      for($n=0;$n<count($worte);$n++){
      if($sql_out){
      $sql_out.=$a;
      }
      $sql_out.= "tab_schlagworte.Schlagwort LIKE '%".$worte[$n]."%'";
      }
      return $sql_out;
      }

      Aufruf:

      "SELECT * FROM tab WHERE ".where(param)."";

      Falk