Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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
Php 我怎样才能选择使用LIKE有效?_Php_Sql - Fatal编程技术网

Php 我怎样才能选择使用LIKE有效?

Php 我怎样才能选择使用LIKE有效?,php,sql,Php,Sql,我正在尝试使用LIKE执行一个查询。我使用的是LIKE或LIKE,因为我需要选择返回值或其他值,它可以正常工作。问题是我需要通过cidade返回,cidade是我数据库中的一个表 我正在试这个 public function getLocalByNomeOrTipo($value, $idCidade){ $find = "%".$value."%"; $stm = $this->conexao->prepare("SELECT * FROM loca

我正在尝试使用LIKE执行一个查询。我使用的是
LIKE或LIKE
,因为我需要选择返回值或其他值,它可以正常工作。问题是我需要通过
cidade
返回,cidade是我数据库中的一个表

我正在试这个

public function getLocalByNomeOrTipo($value, $idCidade){
        $find = "%".$value."%";
        $stm = $this->conexao->prepare("SELECT * FROM locais t1
                                        INNER JOIN cidade t2 ON (t1.cidade_id = t2.id)
                                        INNER JOIN tipo_local t3 ON (t1.tipo_local_id = t3.id)
                                        WHERE (t1.cidade_id = ?) AND (status = 1) AND (t1.nome LIKE ? OR t3.tipo LIKE ?)
                                        ORDER BY t1.nome");
        $stm->bindParam(1, $idCidade);
        $stm->bindParam(2, $find);
        $stm->bindParam(3, $find);
        $stm->execute();
        $lista = $stm->fetchAll();

        return $lista;
    }
解决了这个问题

public function getLocalByNomeOrTipo($value, $idCidade){
        $find = "%".$value."%";
        $stm = $this->conexao->prepare("SELECT * FROM locais t1
                                        INNER JOIN cidade t2 ON (t1.cidade_id = t2.id)
                                        INNER JOIN tipo_local t3 ON (t1.tipo_local_id = t3.id)
                                        WHERE (t1.cidade_id = ?) AND (status = 1) AND (t1.nome LIKE ? OR t3.tipo LIKE ?)
                                        ORDER BY t1.nome");
        $stm->bindParam(1, $idCidade);
        $stm->bindParam(2, $find);
        $stm->bindParam(3, $find);
        $stm->execute();
        $lista = $stm->fetchAll();

        return $lista;
    }

你的问题是什么?也许您应该编辑您的问题,并提供示例数据和所需结果。@GordonLinoff我需要该问题仅返回
t1.cidade_id=1
的值,例如,但不起作用并始终返回所有值。