Я пытаюсь выполнить запрос, используя LIKE. Я использую LIKE or LIKE
, потому что мне нужно, чтобы SELECT возвращал значение или другое, он работает. Проблема в том, что мне нужно это возвращение 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;
}
t1.cidade_id = 1
например, но не работает и всегда возвращает все значения.