Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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);Se puderem me ajudar, agradeço.
Obrigado
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);Obrigado
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:
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;
}
}....
<div id="senha-footer">
{{ atendimento.servico }}<br /><br />
{{ voucher }}<br />
</div>
...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.
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);$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;
}
}
coloque logo após pg_query
veja exemplos aqui: http://php.net/pg_fetch_all