SELECT em vários campos - Multi camadas
Oi Pessoal, estou tentando um select mas, só funciona com um único campo. Gostaria que funcionasse com "N" campos.
Estou usando:
// Estou recebendo do html via post e jogando para a variável
for($i=0;$i<count($arrabusca);$i++){
if($arrabusca[$i] != ''){
if($i==0){
//Grau de instrução completo
$campbusca = ' WHERE grau LIKE ?';
$dadobusca = $arrabusca[$i];
}
elseif($i==1){
//Nome do associado
if(!$dadobusca == ''){
$campbusca = $campbusca.' && nome LIKE ?';
$dadobusca = $dadobusca.', %'.$arrabusca[$i].'%';
}else{
$campbusca = ' WHERE nome LIKE ?';
$dadobusca = '%'.$arrabusca[$i].'%';
}
... // as reticencias é para reduzir o código, são ao todo oicampos, só pego os validos.
if($crud->select('codi','associado',$campbusca,array($dadobusca))->rowCount()<1){
print 'O(A) Associado(a) não foi localizado(a)!';
...
}else{
...
{
Só tem um problema, só funciona se for com um único campo.
// por exemplo, depois de montado com um único campo fica assim: (funciona)
if($crud->select('codi','associado','WHERE grau=?',array('Profissional'))->rowCount()<1){ ...
// mas, montado com dois ou mais campos não funciona, montado fica assim: (dá erro no "$exec" do CRUD)
if($crud->select('codi','associado','WHERE grau=? && aceiplan=?',array('Profissional,s'))->rowCount()<1){ ...
Bom, para deixar claro só funciona com um campo, mas com dois ou mais campos não funciona, alguém poderia me informar onde estou errando?
A baixo segue como está meu CRUD.
private $query;
private function prepExec($prep,$exec)
{
$this->query=$this->getConn()->prepare($prep);
$this->query->execute($exec); // nesta linha dá o erro
}
public function select($fields,$table,$cond,$exec)
{
$this->prepExec('SELECT '.$fields.' FROM '.$table.' '.$cond.'',$exec);
return $this->query;
}
Msg de erro:
>
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp\www\atcpe\require\class\CRUD.class.php on line 9
Certo de ser ajudado, agradeço com antecedência.
Discussão (8)
Carregando comentários...