Duvida consulta ao banco de dados

Enviada por Rafael Castro 
Rafael Castro
Duvida consulta ao banco de dados
17 de April de 2012 às 08:19PM
Olá. Este é o meu primeiro post. Vamos lá...


Estou com uma dúvida em PHP quando faço uma consulta a um banco de dados qualquer (neste caso trata-se do Firebird).

O que estou fazendo:

<?
for ($i=1; $i<=5; $i++)
{
$comando = "";
$comando = "SELECT * FROM TABELA WHERE CAMPO='$i'";
// abro a conexao
$resultado = ibase_query($comando, $conexao);
while ($show = ibase_fetch_object($resultado)) // ***
{
// faço umas comparações
}
// fecho a conexao
}
?>

Acontece que ao exibir a pagina a primeira vez, quando $i = 1, a consulta acontece.
A partir da segunda ou terceira passagem dentro do laço, o resultado é:

Warning: ibase_fetch_object() [function.ibase-fetch-object]: invalid statement handle in c:\wamp\arquivo.php on line 196

*** A linha 196 é justamente o while

O que está acontecendo?

Abraço
Marcos Regis
Re: Duvida consulta ao banco de dados
18 de April de 2012 às 07:35AM
Simples, nao há resultados para $i >1. Verifique isso.
Rafael Castro
Re: Duvida consulta ao banco de dados
18 de April de 2012 às 10:07AM
Caro Marcos, obrigado pela mensagem

Posso garantir que a variável $i vai até 5.

Antes desta consulta que estou tendo dúvidas eu faço uma outra usando COUNT. Nela eu gravo a quantidade, no caso $i.

Depois dentro do laço eu faço um for com $j e $i. No post eu simplifiquei para que ficasse mais fácil a ajuda.


O for na verdade é deste jeito

/*
for ($j=1; $j<=$i; $j++)
{
$comando = "";
$comando = "SELECT * FROM TABELA WHERE CAMPO = '$j'";
}
*/
Marcos Regis
Re: Duvida consulta ao banco de dados
19 de April de 2012 às 12:01PM
acho que você não entendeu o ponto.

Seguinte, faça a seguinte modificação.


<?php
$comando = "SELECT * FROM TABELA WHERE CAMPO='%s'";

for ($i=1; $i<=5; $i++) {
// abro a conexao
$resultado = ibase_query($conexao,sprintf($comando,$i)) or die(ibase_errmsg());;

while ($show = ibase_fetch_object($resultado)){ // ***
// faço umas comparações
}
// fecho a conexao
}
?>
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.