- 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....