Ir para conteúdo

POWERED BY:

Arquivado

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

ohlele

Total de registros com Firebird

Recommended Posts

Olá pessoal estou com uma dúvida e não consigo resolver.

 

Eu uso php 5.5.0 no easy php para fazer os testes.

 

Bom preciso pegar o total de registros de uma tabela no Firebird.

Peguei várias formas mas não funciona.

 

Primeiro testei para ver se a função existe usando:

if (function_exists('ibase_affected_rows')) {
echo "Existe";
} else {
echo "Não existe";
}

 

Beleza.

 

Tentei usar ibase_affected_rows() e esse cara não funciona de jeito nenhum, no mysql é tranquilo mas no firebird não vai.

 

OBS: no meu select eu estou usando First e skip, acho que não vai funcionar COUNT.

 

E não queria fazer mais uma nova consulta para contar registro, pois o banco é muito grande e vai demorar muito, fica inviável.

 

Como resolvo isso?

 

 

Obrigado

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, ibase_affected_rows() É função para verificar a quantidade de registros afetados.

 

Você pode tentar:

 

 

 

 

$reg = ibase_fetch_assoc(ibase_query('select count(*) as REGS from TABELA')); 
    
  echo $reg['REGS'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta função não me retorna nada.

 

Como que eu coloco um Select COUNT neste meu sql?

 

EX:

$sql = "SELECT FIRST ".$a." skip ".$b."

i.campo1,i.campo2
FROM tabela_i i
INNER JOIN (...)
WHERE (...)
Eu tenho que gerar uma nova consulta só para isso?
Estou fazendo paginação.
Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pesquisei e vi que para o SELECT esta função não funciona.

 

Veja na documentação:

"Esta função retorna o número de registros que foram afetados pela consulta (INSERT, UPDATE or DELETE) anterior que foi executada no contexto da transação especificada."

 

Alguem tem uma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se entendi bem, mas sugiro a vc pesquisar sobre funçoes de agregração em sql;
exemplo: count() retorna 1 determinado número de registros;

select count(id) from amigos where cidade="São Paulo";

retorna quantos registros vc tem na tabela "amigos"
cuja cidade é exatamente "São Paulo";

 

1 outra opção é a função max();

 

exemplo:
tenho uma tabela com 20 registros,
mas foram apagados os registros 9 a 19;


select max(id), nesse caso me retorna o registro nº 20;
já select count(id) me retornaria 9 registros, está entendendo a diferença?

 

e assim vai.. tente ahe ou qqer coisa retorne..

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.