将行与数组中的元素进行匹配

时间:2016-09-29 17:05:13

标签: php mysql

我有一个sql请求与php数组一起查找搜索栏的所有匹配项。

我无法完成这项工作。这是我的代码:

    $texte = $_POST['texte'];
    $texte = explode(" ", $texte);
    $query_parts = array();

    //Proximité
    foreach ($texte as $value) {
        $value = "%".$value."%";
    }



    $sql = "SELECT * FROM PROXIMITE WHERE titrefr LIKE ':texte'";
    $req = $bd->requete_obj($sql, array('texte'=>$texte));

    while($select = $req->fetch()){
        error_log('Test');
    }

1 个答案:

答案 0 :(得分:1)

你的foreach循环实际上并没有修改变量,因为它们是通过Value传递的 - 意思是副本。 要修改它们,你必须通过引用传递它们:

foreach ($texte as &$value) {
    $value = "%".$value."%";
}

这样,数组中的实际值就被操纵了。

其次:您无法为数据库提供数组作为参数。相反,你可以遍历数组。如果你在第一个循环中实现它,你甚至不必再使用引用了:

$sql = "SELECT * FROM PROXIMITE WHERE titrefr LIKE :texte";
foreach ($texte as $value) {
    $value = "%".$value."%";
    $req = $bd->requete_obj($sql, array('texte'=>$value));
    while($select = $req->fetch()){
        error_log('Test');
    }
}