Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia amigos, tudo bem?
Sou novo em POO e estou com algumas dificuldades.
Tenho um método de uma classe que é bem simples, ele busca todos os campos da tabela USUARIO (Firebird 2.0) e retorna o array com elas. Só que a não consigo exibi-los com while.
Sem o método eu faria:
while($array = ibase_fetch_object($query)){
echo $array->ID;
echo "<br>";
echo $array->ID;
// E por aí vai...
}
public function selectAllUsers(){
$select = "select * from USUARIO";
$query = ibase_query($select);
$array = ibase_fetch_object($query);
return $array;
}
Só que com o array não consigo. Não sei como usar o while com esse array retornado.
Por favor, se alguém puder me ajudar... serei grato.
Um abraço a todos.while ($row = mysql_fetch_assoc($array ));
tenta issoVocê está percorrendo errado, precisa percorrer o cara que você está retornando, ex:
while($row = ibase_fetch_object($array)){
echo $row->ID . "<br>";
// ou $row['ID'] . "<br>";
}
A sintaxe parece a mesma do mysqli, verifique se é mesmo ibase_fetch_object que percorre o array. Certifique-se também que $array está com os dados da consulta.
Sugiro pesquisar por foreach, que é específico para percorrer array e objetos, veja: [http://php.net/manual/pt_BR/control-structures.foreach.php](http://php.net/manual/pt_BR/control-structures.foreach.php)Primeiramente muito obrigado.
Amigos, eu não expliquei corretamente ou vocês entenderam errado: a função ibase_fetch_object() está sendo usada num método na minha classe; quero que esse método retorno um array com todos os dados vindos dessa query (um select) e então eu exiba esses dados na minha página.
O problema não está na função ibase_fetch_object(), mas sim ao exibir as informação. Vejam meu método:
public function select($login){
$select = "select * from USUARIO where login = ".$login;
$query = ibase_query($select);
$array = ibase_fetch_object($query);
return $array;
}
Ele retorna o array - e tudo bem que nesse caso ele pegue só a primeira linha do registro - e na página que eu chamo esse método, eu quero exibir os registros dele.
Espero que eu tenha conseguido explicar. Fico no aguardo de uma ajuda e desde já, muito obrigado.Mas então, é o que eu passei acima para exibir os dados. Precisa percorrer o Array, ou será que não estou entendendo?
Quando você chama um método que tenha um return como é o seu caso, precisa armazenara o retorno numa variável, e depois utilizar ela para exibir os dados que queira.
Faça assim, chame o método, e depois de um var_dump no retorno para saber o que está vindo dele, aí vai saber o que vem no Array para utilizar, ok? Ex:
$busca_dados = $this->select($login);
var_dump($busca_dados);
exit;Obrigado Marcos pela ajuda.
Reparei que o resultado de um ibase_fetch_object() é diferente de um array 'convencional'. Então o que eu fiz foi passar o conteúdo desse objeto pra um array e retornar esse array. Não era o que eu queria, porque nesse caso eu sei o número exato do retorno do meu select então deu pra manipular de boa, mas resolveu.
Gostaria de saber como tratar melhor os dados vindos de um ibase_fetch_object(), pois como agora vou trabalhar com POO, quero que métodos retorne isso pra mim. Mas enfim...
Muito obrigado a todos que se propuseram a ajudar. Um feliz 2019.
O loco moçada, ninguém faz ideia de como pode ser resolvido?