Função Pesquisar em PHP

1. Função Pesquisar em PHP

Carlos Bruno
cbcarlos7

(usa Linux Mint)

Enviado em 15/08/2013 - 19:32h

Olá, Pessoal!

Tenho o seguinte código:


public function Pesquisa($usuario){
try{



$this->p = new Conexao();

$stmt = $this->p->prepare("SELECT * FROM usuario WHERE usu_nome LIKE ?");
$stmt->bindValue(1, '%'.$usuario->getNome().'%',PDO::PARAM_STR);
$stmt->execute();
$res = $stmt->fetch();
if($res>0){
// $user = $stmt->fetchColumn();
while ($dados = $stmt->fetch(PDO::FETCH_OBJ)){
$cliente = new Usuario();
/*Instancia um objeto cliente para cada cliente que existe
* objeto Cliente chama o metodo setId e passa os dados como
um array de posição id*/
$cliente->setId(array('id'=>$dados->usu_id));
/*objeto Cliente chama o metodo setNome e passa os dados como
um array de posição nome*/
$cliente->setNome(array('nome'=>$dados->usu_nome));
/*varival $arr do tipo array para cada nova posição re
* recebe o objeto cliente
*/
$cliente->setLogin(array('login'=>$dados->usu_login));

$arr[] = $cliente;

/*
* retorna o array com todos os objetos instaciados
* obs: cada registro um objeto
*/

}
return $arr;
}else{
echo "<br><br>Usuario nao encontrado";
}



}catch ( PDOException $ex ){ echo "Erro: ".$ex->getMessage();
echo "Nao encontrado";

}

$this->p = null;

}


Porém, quando pesquiso dá o seguinte erro

Notice: Undefined variable: arr in C:\wamp\www\cadastro\dao\Usuario_DAO.class.php on line 194

Alguem pode me ajuda?




  


2. Re: Função Pesquisar em PHP

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 15/08/2013 - 21:28h


Notice: Undefined variable: arr in C:\wamp\www\cadastro\dao\Usuario_DAO.class.php on line 194


Tem uma variável indefinida na linha 194, do arquivo Usuario_DAO.class.php, que se localiza no diretório C:\wamp\www\cadastro\dao\

Abra o arquivo e verifique essa linha, que está dando o erro. Verifique qual é a variável indefinida.


3. Re: Função Pesquisar em PHP

Gunnar Correa
gunnercorrea

(usa Ubuntu)

Enviado em 15/08/2013 - 21:42h

Olá, provavelmente a variável não existe ou você não tem permissão para acessa-la.

Qual é o código todo?

Onde você declarou public $arr; ?


4. Re: Função Pesquisar em PHP

Carlos Bruno
cbcarlos7

(usa Linux Mint)

Enviado em 15/08/2013 - 21:50h

gunnercorrea escreveu:

Olá, provavelmente a variável não existe ou você não tem permissão para acessa-la.

Qual é o código todo?

Onde você declarou public $arr; ?



A variavel está nesta funcao ai ...

Por na funcao listarTodos funcionou, mas quando vou pesquisar dá erro


public function ListarTodos(){
try{

$this->p = new Conexao();

$stmt = $this->p->query("SELECT * FROM usuario ");


// $user = $stmt->fetchColumn();
while ($dados = $stmt->fetch(PDO::FETCH_OBJ)){
$cliente = new Usuario();
/*Instancia um objeto cliente para cada cliente que existe
* objeto Cliente chama o metodo setId e passa os dados como
um array de posição id*/
$cliente->setId(array('id'=>$dados->usu_id));
/*objeto Cliente chama o metodo setNome e passa os dados como
um array de posição nome*/
$cliente->setNome(array('nome'=>$dados->usu_nome));
/*varival $arr do tipo array para cada nova posição re
* recebe o objeto cliente
*/
$cliente->setLogin(array('login'=>$dados->usu_login));

$arr[] = $cliente;

/*
* retorna o array com todos os objetos instaciados
* obs: cada registro um objeto
*/

}

}catch ( PDOException $ex ){ echo "Erro: ".$ex->getMessage(); }

$this->p = null;
return $arr;
}



5. Re: Função Pesquisar em PHP

Andre Cardoso
andrebian

(usa Fedora)

Enviado em 15/08/2013 - 22:54h

oproblema é que a variável $arr esta sendo inicializada somente dentro do while, que teoricamente está esperando que haja retorno da consulta sql no entanto não há. Declare a variável $arr logo antes do do if($res>0){ desta forma


$arr = array();

if ( $res> 0 ) { ...




6. Re: Função Pesquisar em PHP

Carlos Bruno
cbcarlos7

(usa Linux Mint)

Enviado em 15/08/2013 - 22:55h

Bom. Nao deu erro, mas tambem nao apareceu nada quando eu digitei a palavra para pesquisar


7. Re: Função Pesquisar em PHP

Carlos Bruno
cbcarlos7

(usa Linux Mint)

Enviado em 22/08/2013 - 11:41h

Alguém tem alguma ideia?


8. Re: Função Pesquisar em PHP

Diego Lepera
d_lepera

(usa Linux Mint)

Enviado em 22/08/2013 - 12:32h

pelo que eu percebi, no médoto Pesquisar vc está tentando inserir diretamente o valor dentro do vetor sem declará-lo. Por isso ocorre esse aviso. Recomendo que você declare a variável antes do while: $arr = array();




9. Re: Função Pesquisar em PHP

Carlos Bruno
cbcarlos7

(usa Linux Mint)

Enviado em 23/08/2013 - 11:01h

É porque eu usei no método listarTodos() e funcionou
Ai eu tentei usar praticamente a mesma ideia para pesquisar
porém, sem sucesso.


10. Re: Função Pesquisar em PHP

Carlos Bruno
cbcarlos7

(usa Linux Mint)

Enviado em 26/08/2013 - 15:27h

E agora?


11. Re: Função Pesquisar em PHP

Diego Lepera
d_lepera

(usa Linux Mint)

Enviado em 26/08/2013 - 15:47h

vc mexeu alguma coisa no código?


12. Re: Função Pesquisar em PHP

Laerte Guedes Monteiro
laerteguedes8

(usa Fedora)

Enviado em 26/08/2013 - 16:14h

Realmente acho que você deveria declarar $arr como array antes do if, fazendo $arr = Array(). Deveria funcionar, tente dar um var_dump($arr) e var_dump($cliente) e coloque aqui o que aparecer.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts