+ Responder ao Tópico



  1. #1

    Padrão 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)

  2. #2

    Padrão 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

  3. #3

    Padrão 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...

  4. #4

    Padrão 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:

  5. #5

    Padrão 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...

  6. #6
    estanisgeyer
    Visitante

    Padrão 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.

  7. #7

    Padrão 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....