Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alexandre_prog

[Resolvido] contar registros com interbase

Recommended Posts

Pessoal, tem alguma função que conte os registros no Interbase/Firebird e jogue esse número em uma variável??

 

 

porque não estou conseguindo fazer com o ""select count(*)"",,, porque a consulta é muito complexa pra isso!!

 

 

tem alguma função que me mostre essa quantidade de registros?

 

 

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ibase_affected_rows()?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ibase_affected_rows()?

Sim,,, mas como eu disse. Como eu faço pra jogar esse resultado em uma variável??

 

já tentei assim, mas não funcionou:

 

$num = ibase_affected_rows($resultado);

 

 

EAI??

 

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim não funcionou?

A query está certa? é semelhante ao mysql_num_rows()..

 

Coloca mais alguns trechos do código para que vejamos oq está errado. Pois a sintaxe é essa mesmo.

Aconteceu oq? Se você der um echo no $num, oq aparece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou fazendo assim, mas não vai!

 

 

$resultado = ibase_query($sql)

or die("Falha na execução da consulta");

$num = ibase_affected_rows($resultado);

echo $num;

 

 

Dá esse erro aqui::

 

Warning: ibase_affected_rows(): supplied resource is not a valid Firebird/InterBase link resource in C:\****.php on line 115

 

estranho!!

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu pra perceber pela sintaxe da função, que você tem que passar como parâmetro a conexão com o banco, e não a consulta SQL.

É o inverso do mysql.

 

Rápida busca no Yahoo hein?!

http://www.kinghost.com.br/php/function.ib...fected-rows.php

 

Veja a sintaxe da função:

http://br.php.net/manual/pt_BR/function.ib...fected-rows.php

link_identifier

Um contexto de transação. Se link_identifier é um resource de conexão, a transação padrão é usada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vixe parceiro, ai você complicou as coisas pra mim heim,,,, kkkkkkkk ,,,,

 

No PHP não entendo muito de termos tão técnicos assim, mas minha conexão está em um arquivo a parte, desse jeito:

 

 

function obter_conexao_php(){

$conexao = ibase_connect("127.0.0.1:C:\****","SYSDBA","masterkey")

or die("Não foi possível conectar");

}

function fechar_conexao_php($conn){

ibase_close();

}

 

 

Acho que estamos chegando lá, mas já tinha visto esses links e não sei como proceder,

 

O que posso fazer pra dar certo!!

 

Muito Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então... oque você tem que fazer é o seguinte:

$query = "SELECT...blabla"; /* normal.. o importante é a ordem */
$num = ibase_affected_rows($conexao); // ou simplesmente, sem parâmetro nenhum, mas logo após a operação que você quer contar:
$num1 = ibase_affected_rows();

Ne?! foi oque entendi da descrição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente deu o mesmo erro aqui::

 

Warning: ibase_affected_rows(): supplied argument is not a valid Firebird/InterBase link resource

in C:\****.php on line 116

 

 

Pior que se eu fizer dessa maneira, ele mostra ZERO::

 

$num1 = ibase_affected_rows();

echo $num1;

 

 

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca esse código todo... com a conexão do banco, a query e a tentativa de contar os registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então,,,, eu tentei colocar a conexão no mesmo arquivo que estão as consultas:

 

 

$resultado = ibase_query($sql)

or die("Falha na execução da consulta");

$num = ibase_affected_rows($conexao);

$num1 = ibase_affected_rows();

echo $num;

echo $num1;

 

 

.... e ele jogou DOIS zeros na tela...

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Okay... e a query está funcionando?

você está mesmo conectado ao banco?

 

Eu nunca mechi com FireBird, mas vou precisar semana que vem...

Tenta fazer o affected_rows com uma consulta mais simples... só pra ver se a função funciona como gostaríamos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está tudo funcionando sim,

 

 

tentei fazer com uma consulta bem simples aqui, com uma tabela que só tem 7 registros, e dei um Select * from tabela, e apareceu os mesmo DOIS zeros que apareceu na outra!

 

 

Obrigado!!

 

Mais alguma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei um jeito de fazer na gambiarra mesmo, ficaria assim:

 

$i = 0;

while (ibase_fetch_row($resultado)) {

$i++;

}

echo $i;

 

 

Mas isso é gambiarra né? E no meu caso, pode acontecer de MILHARES de registros serem trazidos do banco, então isso vai custar muito processamento,,,

 

 

Se alguém souber outra maneira!!

 

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Esta função (ibase_affected_rows) não serve para contar a quantidade de registros retornados por um comando SELECT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.