Ir para conteúdo

POWERED BY:

Arquivado

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

adenison

[Resolvido] Select no Banco Postgres

Recommended Posts

Estou tentando fazer um select em uma tabela no postgres para exibir os produtos e o valor deles....

Estou usando o seguinte comando.

<?php
if(!@($conexao = pg_connect("host=postgresql01.constanta.com.br dbname=constanta1 port=5432 user=constanta1 password=cta124578")))
{
   print "Não foi possível estabelecer uma conexão com o banco de dados.";
}
else
{
     $query = "select * from listaprecos";
    
    

     $result = pg_query($conexao, $query);

    /* Retonar um array associativo correspondente a cada linha da tabela */
     while($consulta = pg_fetch_assoc($result))
     {
       print "Grupo: " .$consulta['grupo'] . " - ";
       print "Local: ".$consulta['local']."<br />";
       print " - Descrição: ".$consulta['descricao'] . " - ";
       print "PRCVEN: ".$consulta['prcven']." - ";
       print "Saldo: ".$consulta['saldo'];
     }
    
     pg_close($conexao);
}
?>

Quando eu mando executar é exibido uma pagina em branco sem nenhuma informação... link pra testes é : http://polos.t35.com/Teste/Constanta/preco.php

 

Não tenho a menor do que esta acontecendo..

 

Preciso de uma ajuda..

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou tentando fazer um select em uma tabela no postgres para exibir os produtos e o valor deles....

Estou usando o seguinte comando.

<?php
if(!@($conexao = pg_connect("host=postgresql01.constanta.com.br dbname=constanta1 port=5432 user=constanta1 password=cta124578")))
{
   print "Não foi possível estabelecer uma conexão com o banco de dados.";
}
else
{
     $query = "select * from listaprecos";
    
    

     $result = pg_query($conexao, $query);

    /* Retonar um array associativo correspondente a cada linha da tabela */
     while($consulta = pg_fetch_assoc($result))
     {
       print "Grupo: " .$consulta['grupo'] . " - ";
       print "Local: ".$consulta['local']."<br />";
       print " - Descrição: ".$consulta['descricao'] . " - ";
       print "PRCVEN: ".$consulta['prcven']." - ";
       print "Saldo: ".$consulta['saldo'];
     }
    
     pg_close($conexao);
}
?>

Quando eu mando executar é exibido uma pagina em branco sem nenhuma informação... link pra testes é : http://polos.t35.com/Teste/Constanta/preco.php

 

Não tenho a menor do que esta acontecendo..

 

Preciso de uma ajuda..

 

Obrigado

 

 

kra, eu aconselho voce usar a frameword ADODB5 para fazer as conexoes com os bancos de dados!!!!

 

se usasse ela, poderia ativar a OPT "debug" para ver o que esta acontecendo na execucao do PG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara sou iniciante no php, estou fazendo o mais basico possivel.

O que é ADODB5?

Compartilhar este post


Link para o post
Compartilhar em outros sites

heheh desculpa amigo!!!

 

 

então isso eh uma framework pronta de conexao com database feita para PHP... nela você consegue usar todos os tipos de DB (mySQL, postgresSQL, msSQL, Oracle [OCI8], etc).

 

 

Kra eu vi seu código e ele aparentemente esta funcionando... peguei ele e fiz algumas aleterações... refiz seu código mas comentei e expliquei os pedaços mais importantes.

 

<?
$conexao = "host=postgresql01.constanta.com.br dbname=constanta1 port=5432 user=constanta1 password=cta124578";
$db = pg_connect($conexao); // aqui ele executa a conexão com o DNS da variavel $conexao

$query = "select * from listaprecos";
$resultado = pg_query($db,$query); // Executa a query $query na conexão $db

while($linha = pg_fetch_array($resultado)) { //aqui troquei para arrays, este loop declara a variavel $linha (ela representa o resultado da query), e o loop lê linha a linha do retorno
       // Escreve na página o retorno para cada registro trazido pela query
       echo "Grupo: " .$linha['grupo'] . " - ";
       echo "Local: ".$linha['local']."<br />";
       echo " - Descrição: ".$linha['descricao'] . " - ";
       echo "PRCVEN: ".$linha['prcven']." - ";
       echo "Saldo: ".$linha['saldo'];
}
pg_close($db); // Fecha a conexão com a $db
?>

 

então kra... isso eh pra funcionar.... se não funcionar e der algum erro, crie um script "info.php"

<?
php_info();
?>
e deixe em algum diretorio do servidor, abra ele EX: http://localhost/info.php

 

Procure por "postgres" ou "pgsql", se aparecer alguma informação quer dizer que o seu PHP esta com a extensão do PostgreSQL rodando. se não tiver, vai no PHP.ini e remova o comentario desta linha. (primeiro char da linha, nao lembro se é ";" ou "#")

 

reinicie o apache e abra o info.php denovo para ver se esta ok! se aparcer provavelmente agora os scripts vão estar funcionando!!

 

 

 

Abraços!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não funcionou não.. agora esta aparecendo mensamgem de função indefinida..

 

A mensagem é:

 

Fatal error: Call to undefined function pg_connect() in /home/freehost/t35.com/p/o/polos/Teste/Constanta/preco.php on line 2

Não estou usando o apache, estou testando direto no servidor que uso para teste...

 

o endereço é http://polos.t35.com/Teste/Constanta/preco.php

 

Da uma olhadinha se você quiser.....

 

Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, você nao esta com o postgres habilitado na maquina ai nao! hhehehe

 

esse erro so aparece qnd nao acha a funcao Imagem Postada

 

abraz!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara é possivel colocar esse select dentro de uma tabela?

Para exibição com layout mais agradavel para o cliente?

Sei lá tipo uma tabela em HTML...

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, mas para isso primeiro voce precisa conseguir pegar os dados Imagem Postada

<?$query = pg_query('select * from xxxxx');echo '<table>        <tr>          <td>nome</td>          <td>email</td>        </tr>';while($linha = pg_fetch_array($query)) { echo '<tr>          <td>'.$linha[nome].'</td>          <td>'.$linha[email].'</td>       </tr>';}echo '</table>';?>

 

abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amareshino,

 

Os dados eu conseguir puxar agora.

Eles são exibidos dessa forma:

 

Grupo: CN - Local: 01

- Descrição: SOQUETE ESTAMP DS1009-20 (24/V) L=7,62 - PRCVEN: 0 - Saldo: 13984

Grupo: TMV - Local: 01

- Descrição: TMV 3386F 50K ELECTRON - PRCVEN: 0 - Saldo: 44l

 

 

Como a tabela tem muitos dados fica meio confuso a visualização fora de uma tabela com colunas e tal...

 

Estou tentando algo +- assim:

 

while($linha = pg_fetch_array($resultado)) { //aqui troquei para arrays, este loop declara a variavel $linha (ela representa o resultado da query), e o loop lê linha a linha do retorno
       // Escreve na página o retorno para cada registro trazido pela query
	   
       <table width="490" border="1" cellspacing="0" cellpadding="0">
<tr>
	<td width="68"><div align="center">Grupo</div></td>
	<td width="216"><div align="center">Local</div></td>
	<td width="198"><div align="center">Descrição</div></td>
	<td width="216"><div align="center">PrcVen</div></td>
	<td width="198"><div align="center">Saldo</div></td>
</tr>
<tr>
 <td><?echo $linha['grupo'];?></td> 
 <td><?echo $linha['local']?></td>
 <td><?echo $linha['descricao'];?></td>
 <td><?echo $linha['prcven']?></td>
 <td><?echo $linha['saldo'];?></td>
 </tr>
</table>

Mais não esta vindo nada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

 

<?
// este echo comeca a tabela (ja que os resultados estao no loop, tirei o header da tabela dele
echo '<table width="490" border="1" cellspacing="0" cellpadding="0">
        <tr>
                <td width="68"><div align="center">Grupo</div></td>
                <td width="216"><div align="center">Local</div></td>
                <td width="198"><div align="center">Descrição</div></td>
                <td width="216"><div align="center">PrcVen</div></td>
                <td width="198"><div align="center">Saldo</div></td>
        </tr>';
// Aqui começa o loop trazendo os resultados linha a linha
while($linha = pg_fetch_array($resultado)) {
    echo '<tr>
             <td>'.$linha['grupo'].'</td> 
             <td>'.$linha['local'].'</td>
             <td>'.$linha['descricao'].'</td>
             <td>'.$linha['prcven'].'</td>
             <td>'.$linha['saldo'].'</td>
         </tr>';
}
// Aqui fecha a tabela
echo '</table>';
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara, ficou muito bom....

Aos poucos vou apreendendo..

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara mais uma duvida..

 

Estou eu fiz agora um formulario de login, onde no meu campo só tem um usuario e uma senha...

 

Preciso comparar se o login e a senha digitado é o mesmo que tenho no banco..

 

Vou precisar criar um outro ponto arquivo tipo conecta.php?

 

Como devo fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra td depende do jeito que você programar.... funcionar eh o importante! hehehehhe

 

eu uso uma framework ke eu fiz... qnd tiver tempo eu voi postar ela pra voces aki do forum!!!!

 

mas eu acho melhor você fazer em arquivo diferente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, vou dar uma lida sobre framework, tem menos de 2 meses que estou mexendo com PHP, começei do zero.... Imagem Postada

 

eu fiz uma arquivo separado chamando senha.php com o seguinte codigo.

<?php$conexao = "host=localhost dbname=Constanta port=5432 user=constanta1 password=postgres";$db = pg_connect($conexao); $usuario =  trim($_REQUEST["login"]);   $password = trim($_REQUEST["senha"]);  	include "login.php"; 	$compara = ("select usuario, senha from senha");$resultado = pg_query($db,$compara); if ($resultado == null){ header("Location:preco.php");}else{echo "Digita a Senha e o Usuário";}pg_close($db); ?>
Eu tenho tabela senha com apenas 1 usuario e senha, pois serão passado via email para alguns clientes.. O que eu precisa é verificar se a senha e usuario digitado são iguais ao que tenho no banco..

 

Acontece que ele esta caindo apenas na condição de baixo...

 

Ta osso..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

 

<?php

$conexao = "host=localhost dbname=Constanta port=5432 user=constanta1 password=postgres";
$db = pg_connect($conexao); 

$usuario =  trim($_REQUEST["login"]);   
$password = trim($_REQUEST["senha"]);  

//include "login.php"; 

$compara = "select usuario, senha from senha where usuario = \'{$usuario}\' and senha = \'{$password}\'";
$resultado = pg_query($db,$compara); 

if (pg_num_rows($resultado)>0) { 
    header("Location: preco.php");
}else {
    echo "Senha ou usuário inválido!";
}
pg_close($db); 
?>

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu estou errando em coisa besta.....

 

Valeu .. consegu..

 

Agora vou parti para o próxima etapa q é esconder a url, para impedir que a pessoa acesse diretamente a preco.php...

 

 

Valeu mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

heheheheheh eh normal!!! com o tempo a gnt pega as manhas!!!

 

 

qqr coisa posta aew!!!

 

abraços!

 

[RESOLVIDO] plz Imagem Postada

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.