
 
		
		
    
-  PHP and the Bird
 
	
	
 
 
 
		
			
	+ Responder ao Tópico
	
	
	
	
	
	
		
			
- 
	
	
		
		
			
				
				
				
					
 PHP and the Bird
				
				
						
							
							
						
						
				
					
						
							e ae galera!
eu to prorgamando agora um sistema que possui sua interface WEB e gráfica, utilizando database firebird.
to utilizando php pra programar o sistema web, mas é o seguinte, faz mor cara que não mexia com o interbase(firebird) e php, e não lembro como faço pra saber o resultado de uma daterminada consulta...
tipo..
$query = ibase_query("select lçalala from tb_blablabla", $connect) or die("ERRO -> " . ibase_errmsg()).
quero saber quantos dados retoram em $query....
tentei usar count($query) mas nem dá certo... nunca retorna zero huahua... 
grato.
 8)
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 PHP and the Bird
				
				
						
						
				
					
						
							Eawe mussarela, blz???
olha no site do php ( www.php.net ) que la tem todas as funcoes referentes ao InterBase, ou intao clica aqui: http://br.php.net/manual/en/ref.ibase.php que ja cai direto na pagina....mas deve ser alguma coisa do tipo ibase_num_rows sei la....
flw
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 PHP and the Bird
				
				
						
						
				
					
						
							ahuhuahua  se fosse que nem o mysql_num_rows tava bom!
não existe esta função que retorne o número de resultados pro interbase...
estoou pensando em criar uma classe que ao se executar uma consulta ele verifique o número de resultados..
$x = 0;
while($dados = ibase_fetch_object($query)){
    $result[$x] = $dados;
    $x++;
}
$x seria o numero de resultados só que a variavel $dados é um array,
e preciso jogar este array em $result na linha $x, sera que isso acima dará certo?! vou tentar...
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 PHP and the Bird
				
				
						
						
				
					
						
							tipo isto:
Class DataBase{
   var $query;
   var $count;
   var $FieldByName;
   var $conexao;
   
   function Database(){
      require("config.inc.php");
      $this->conexao = ibase_connect($SystemConf["DATABASE_HOST"] . ":" .$SystemConf["DATABASE_PATH"] ,$SystemConf["DATABASE_USER"], $SystemConf["DATABASE_PASS"]);
   }
   
   function query($sql){
     $this->query = ibase_query($sql, $this->conexao) or die ("ERRO -> " . ibase_errmsg());
     $x = 0;
     while($dados = ibase_fetch_object($query)){
        $FieldyName[$x] = $dados;
        $x++;
     }
   }
   function inserir($sql){
      $tr = ibase_trans();
      $result = ibase_query($tr, $sql) or die ("ERRO -> " . ibase_errmsg());
      ibase_commit($tr);
   }
}
$DB = new Database;
$DB->Query("Select COD_PE from tb_ProdEspQui");
echo $DB->Count .  " resultados.";
echo $DB->FieldByName[0]->COD_PE;
só não sei se vai funcionar a parte do FieldByName, pois com a função do ibase_fetch_object é assim:
while($dados = ibase_fetch_object($query)){
   echo $dados->COD_PE;
}
aceito mais sugestões...  :wink:
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 PHP and the Bird
				
				
						
						
				
					
						
							funcionou muito bem a classe:
Class DataBase{
   var $query;
   var $count;
   var $FieldByName;
   var $conexao;
   
   function Database(){
      require("config.inc.php");
      $this->conexao = ibase_connect($SystemConf["DATABASE_HOST"] . ":" .$SystemConf["DATABASE_PATH"] ,$SystemConf["DATABASE_USER"], $SystemConf["DATABASE_PASS"]);
   }
   
   function Dados($sql){
     $this->query = ibase_query($sql, $this->conexao) or die ("ERRO -> " . ibase_errmsg());
     $x = 0;
     while($dados = ibase_fetch_object($this->query)){
        $this->FieldByName[$x] = $dados;
        $x++;
     }
     $this->count = $x;
   }
   function inserir($sql){
            ////esta funcao será para inserção de dados na database
           //ainda em desenvolimento =P 
   }
}
$DB = new Database;
$DB->Dados("Select u_name from tb_users");
$a = $DB->count; //numero de resultados da consulta
for($x = 0; $x < $a; $x++){
   echo $DB->FieldByName[$x]->U_NAME . "<br>";
}
com isso eu consigo obter o acesso a todos os dados da consulta,
e o numero de resultados....
fica aqui registrado para se alguem precisar um dia...
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 PHP and the Bird
				
				
						
						
				
					
						
							Bah... uma função apenas para contar....!!! É o fim da picada... hehehe
Já tentou fazer a contagem através de comando SQL? Funciona muito bem...
$query="SELECT COUNT(id) FROM blablabla WHERE ....";
Att.
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
- 
	
	
		
		
			
				
				
				
					
 PHP and the Bird
				
				
						
						
							
						
				
					
						
							bahhh....
o objetivo era retornar o numero de campos listados sem ter que adicionar nada no comando sql, que nem o mysql_num_rows faz após uma consulta ter sido realizada....  ou como várias linguagens fazem...
utilizar o count é uma maneira válida, mas eu teria que realizar uma consulta a mais, se for pensar que todas vez que eu precisar fazer uma consulta a mais, dobraria o numero de requisições a database..... 
e utilizar o count(id) junto com as outras consultas não daria certo, pois preciso recuperar os dados dela depois....
tipo: select count(cod_pro), cod_pro, cod_gran from tb_pro;
isto não funciona!
e aquilo não é uma simples função e sim uma classe que criei para ter controle ao acesso ao banco de dados, sem ter que ficar enchendo muitas linhas de código no sistema, por exemplo, ficar repetindo  ibase_query, ibase_fetch_object,...e ainda adicionei a classe metodos para guardar as informações sobre os campos consultados num atributo....