Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql php选择一条与另一条相似的记录_Php_Mysql_Sql - Fatal编程技术网

mysql php选择一条与另一条相似的记录

mysql php选择一条与另一条相似的记录,php,mysql,sql,Php,Mysql,Sql,我知道这似乎是一个重复的、没有堆栈溢出等问题,但我们开始吧 我正在尝试制作一个SQL语句,可以在两个字符串之间找到一个重合点 function getProductos($keyWords){ $keyWords = addslashes(strtolower($keyWords)); $keyWordsExploded = explode(" ",$keyWords); $sql = "SELECT * F

我知道这似乎是一个重复的、没有堆栈溢出等问题,但我们开始吧

我正在尝试制作一个SQL语句,可以在两个字符串之间找到一个重合点

        function getProductos($keyWords){
            $keyWords = addslashes(strtolower($keyWords));
            $keyWordsExploded = explode(" ",$keyWords);
            $sql = "SELECT * FROM PRODUCTOS WHERE HOMBRE_MUJER LIKE :keyWords OR CATEGORIA LIKE :keyWords" OR NOMBRE LIKE :keyWords;

            $query = self::$conn->prepare($sql);
            $query->execute(array(":keyWords"=> "%" . $keyWords . "%"));

        return $query;
        }

In other part of the page I have this code:
            <?php
            if(isset($_GET['buscar'])){
                require(PAGES_DIR . "queries_products.php");
                $consultaProducts = new QueryProductos();
                $productos = $consultaProducts->getProductos($_GET['buscar']);

                if($productos->rowCount()!=0){
                    $arrayProductos = $productos->fetchAll(PDO::FETCH_ASSOC);
                    echo "<h3>Productos encontrados</h3>";
                    foreach($arrayProductos as $fila){
                        echo $fila['NOMBRE'] . " " . $fila['HOMBRE_MUJER'] . "<br>";
                    }
                }else{
                    echo "<p class='alert alert-warning'>No results found <strong>" . $_GET['buscar'] . "</strong>";
                }
            }
        ?>
一切正常,在我的数据库中,我只在CATEGORIA中存储了两个值:hombres和mujeres,如果我搜索hombres,我会得到所有有hombres分类的记录,但当我搜索hombres y mujeres时,我没有得到任何结果,我尝试使用我读过的不同句子,但我没有任何运气,我希望你能帮我解决这个问题,从而大大拯救我。

试试这个:

function getProductos($keyWords) {

     $keyWordsExploded = explode(" ",$keyWords);
      $sql = "SELECT * FROM PRODUCTOS WHERE ";
      $likes = array("HOMBRE_MUJER", "CATEGORIA", "NOMBRE"); // build up our columns which will be used in our condition in sql statment

      $params = array();
      // building up our sql statment and collecting our params
      foreach($likes as $like) {
        foreach($keyWordsExploded as $kw) {
          $sql .="$like like ? or ";
          $params[] = "%".$kw."%";
        }
      }

     $sql = rtrim($sql, "or "); // trim the last "or" condition in sql statment

     $query = self::$conn->prepare($sql);

     $query->execute($params);

     return $query;
}
试试这个:

function getProductos($keyWords) {

     $keyWordsExploded = explode(" ",$keyWords);
      $sql = "SELECT * FROM PRODUCTOS WHERE ";
      $likes = array("HOMBRE_MUJER", "CATEGORIA", "NOMBRE"); // build up our columns which will be used in our condition in sql statment

      $params = array();
      // building up our sql statment and collecting our params
      foreach($likes as $like) {
        foreach($keyWordsExploded as $kw) {
          $sql .="$like like ? or ";
          $params[] = "%".$kw."%";
        }
      }

     $sql = rtrim($sql, "or "); // trim the last "or" condition in sql statment

     $query = self::$conn->prepare($sql);

     $query->execute($params);

     return $query;
}

为什么你在陈述结束前关闭了你的双引号?为什么你在陈述结束前关闭了你的双引号?太好了,非常好的人。非常感谢你帮了我很多!C:我很高兴能帮助你。很好,很好的人。非常感谢你帮了我很多!C:我很高兴能帮助你。