Ir para conteúdo

POWERED BY:

Arquivado

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

Fernando_Henrique

Usar pg_fetch_all / Resources #

Recommended Posts

Bom dia amigos, me encontro com o seguinte problema..

Ao tentar exibir um conteúdo do banco de dados postgres, tenho como resultado "Resources id #4", ai então procurei algumas soluções e reparei que usando pg_fetch_all eu exibiria corretamente o conteúdo por array.

O problema é que não sei aonde colocar o pg_fetch_all no código abaixo.

$conexao=pg_connect ( host= .... )
$query = "select id from voucher limit 1";
$voucher = pg_query("$query");

$this->app()->view()->set('voucher', $voucher);

Normalmente é colocado mais ou menos assim $result pg_fetch_all = ($teste), mas nesse código ai não tenho idéia de onde colocar.

 

Se puderem me ajudar, agradeço.

 

Obrigado

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, obrigado por ajudar .. tentei do modo como você disse e não tive sucesso.

$conexao=pg_connect ( host= .... )
$query = "select id from voucher limit 1";
$voucher = pg_query pg_fetch_all("$query");

$this->app()->view()->set('voucher', $voucher);

Será que to fazendo certo ? tem algum outro modo que posso tentar ?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xará, tente assim (modo obsoleto):

$sql= "select coluna1, coluna2 from tabela";
$resultado = pg_query($sql);
while ($linha = pg_fetch_array($resultado))
{
echo $linha['coluna1'];
echo " - ";
echo $linha['coluna2'];
echo "<br />";
}

mas tente passar a utilizar PDO:

http://www.google.com.br/search?q=pdo+postgres&ie=utf-8&oe=utf-8&rls=org.mozilla:pt-BR:official&client=firefox-a&gfe_rd=cr&ei=c4b0VeeSN8bNgATg-7DACw&gws_rd=cr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, tentei .. tentei e tbm não deu certo..

Fernando C o modo como voce explicou ai acima funciona mesmo, porém o código segue aqueles padrões MVC e a tela que imprime o resultado é outra, esse código que postei acima é do Controller.

 

Tentei dessas formas

//-------------------------------ALTEREI AQUI ------------------------------------------------------
// conectando no banco de dados
$conexao= new PDO ("pgsql: host=127.0.0.1; dbname=novosga; port=5432; user=postgres; password=123456");
//$query = "select id from voucher limit 1";
$voucher = $conexao->query("select id from voucher limit 1")->fetchAll(PDO::FETCH_ASSOC);
//$voucher = pg_fetch_all("$query");
//$voucher = pg_query("$query");
//$voucher = $query;
        
        $this->app()->view()->set('atendimento', $atendimento);
$this->app()->view()->set('voucher', $voucher);
        $this->app()->view()->set('now', new DateTime());


//----------------------------------------------------------------------------------------------------


        // custom print template
        $template = AppConfig::getInstance()->get("ticket.print.template");
        if (empty($template)) {
            $template = 'print.html.twig';
        }
        return $template;
    }
    
}

e o código que imprime, no caso o arquivo print.html.twig é parcialmente esse

 

....
        <div id="senha-footer">
   {{ atendimento.servico }}<br /><br />
   {{ voucher }}<br /> 
        </div>
...

É meio complicado de entender né ? mas caso saiba o que mais posso tentar agradeço..

Compartilhar este post


Link para o post
Compartilhar em outros sites

pg_query e pg_fetch_all são duas funções diferentes. Você não as usa na mesma linha, uma do lado da outra

Veja de novo o link que mandei

Note como as funções são usadas:

 

 

$result = pg_query($conn, "SELECT author, email FROM authors");
 
if (!$result) {
  echo "An error occurred.\n";
  exit;
}
 
$arr = pg_fetch_array($result, 0, PGSQL_NUM);

 

Você colocou uma do lado da outra. Isso é um erro de sintaxe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Corrigi o código e agora encontra-se correto.

 

Da seguinte forma abaixo, ele imprime normalmente o que eu quero

 

$conexao = pg_connect("host=127.0.0.1 port=5432 dbname=novosga user=postgres password=123456");


$sql = "SELECT id FROM voucher ORDER BY random() limit 1";
$result = pg_query($sql);


$voucher = pg_fetch_array($result); {
print "$voucher[id] <br/>";
}


pg_close($conexao);

Mas pra adaptar esse código ta complicado. Ele funciona da seguinte forma: o arquivo no qual os dados são enviados (print.html.twig), descrito no código, serve para que as informações sejam impressas nele, porém se eu edito o código e deixo como o descrito abaixo, ele não imprime mais, se eu tiro a linha $voucher = pg_fetch_array($result); , imprime, porém Resource id #..

 

$conexao = pg_connect("host=127.0.0.1 port=5432 dbname=novosga user=postgres password=123456");
$sql = "SELECT id FROM voucher ORDER BY random() limit 1";
$result = pg_query($sql);
$voucher = pg_fetch_array($result);
        
        $this->app()->view()->set('atendimento', $atendimento);
        $this->app()->view()->set('voucher', $voucher);
        $this->app()->view()->set('now', new DateTime());






        // custom print template
        $template = AppConfig::getInstance()->get("ticket.print.template");
        if (empty($template)) {
            $template = 'print.html.twig';
        }
        return $template;
    }
    
}

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.