suchen in mehreren feldern einer tabelle

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

  • suchen in mehreren feldern einer tabelle

    ich habe da eine tabelle und möchte in 3 feldern einen suchbergiff suchen. der begriff kommt von einem suchformular in der variable "t" - if(isset($_POST["t"])) .... und soll in den feldern zk_m_linktext, zk_m_metdid und zk_m_begriffe gesucht werden.
    $WHERE[] = sprintf("zk_m_linktext REGEXP '%s' OR zk_m_metdid REGEXP '%s' OR zk_m_begriffe REGEXP '%s', $_POST["t"]); klappt nicht, da kommt eine fehlermeldung
    wer hat eine idee?

    PHP-Code:
    $SQL "SELECT * FROM zk_materialien";

    if(isset(
    $_POST["k"])) {
      
    $WHERE[] = sprintf("zk_m_kontinent = '%s'"$_POST["k"]);
    }
    if(isset(
    $_POST["e"])) {
      
    $WHERE[] = sprintf("zk_m_erweiterung = '%s'"$_POST["e"]);
    }
    if(isset(
    $_POST["d"])) {
      
    $WHERE[] = sprintf("zk_m_didaktik = '%s'"$_POST["d"]);
    }
    if(isset(
    $_POST["t"])) {
      
    $WHERE[] = sprintf("zk_m_linktext REGEXP '%s'"$_POST["t"]);
    }
      
      
      if(
    count($WHERE) < 1) {
      return 
    false;
    } else {
      
    $SQL sprintf("%s WHERE %s"$SQLjoin(" AND "$WHERE));
    }
      
    $RS mysql_query($SQL); 

  • #2
    Re: suchen in mehreren feldern einer tabelle

    Original geschrieben von nyfan
    klappt nicht, da kommt eine fehlermeldung
    du lügst

    oder warst du so clever und hast die nicht mitgepostet?

    abgesehen davon ist eine AND verknüpfung bei deinem vorhaben eher suboptimal oder nicht?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Re: suchen in mehreren feldern einer tabelle

      Boah, wat kompliziert. Wiese den ganzen sprintf-kram? Naja, LIKE %suchtext% mit OR-Verknüpfung ist die Wahl.
      PHP-Code:
      $SQL "SELECT * FROM zk_materialien WHERE";

      if(isset(
      $_POST["k"])) {
          
      $WHERE[] = "zk_m_kontinent LIKE '%".$_POST["k"]."%'";
      }
      if(isset(
      $_POST["e"])) {
          
      $WHERE[] = "zk_m_erweiterung LIKE '%".$_POST["e"]."%'";
      }
      if(isset(
      $_POST["d"])) {
          
      $WHERE[] = "zk_m_didaktik LIKE '%".$_POST["d"]."%'";
      }
      if(isset(
      $_POST["t"])) {
          
      $WHERE[] = "zk_m_linktext LIKE '%".$_POST["t"]."%'";
      }


      if(
      count($WHERE) < 1) {
        return 
      false;
      } else {
        
      $SQL .= implode(" OR "$WHERE));
      }
      $RS mysql_query($SQL); 
      Ich denke, also bin ich.
      Manche sind trotzdem!

      Kommentar


      • #4
        Re: Re: suchen in mehreren feldern einer tabelle

        Original geschrieben von mrhappiness
        du lügst

        oder warst du so clever und hast die nicht mitgepostet?

        abgesehen davon ist eine AND verknüpfung bei deinem vorhaben eher suboptimal oder nicht?
        ich log nicht, aber die lösung war ganz einfach:

        WHERE[] = sprintf("zk_m_linktext REGEXP OR zk_m_metdid REGEXP OR zk_m_begriffe REGEXP '%s'", $_POST["t"]);

        - jetzt klappts!

        Kommentar

        Lädt...
        X