+1

PHP e PostgreSQL

criado por Laudelino em 10/10/2005 5:07pm
<html> 
<head> 
<title>noticias.php</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<style> 
.n1, .n2, .n3 {
  font-family: verdana,arial,tahoma,times new roman;
  color:black;
}
.n1 {
  font-size: 10pt;
  font-weight:bold;
} 
.n2 {
  font-size:7pt;
  color:gray;
} 
.n3 {
  font-size:8pt;
} 
</style> 
</head> 

<body> 

<?php
/* Código PHP desenvolvido por Laudelino (Dúvidas? Envie um email para: laudelino7@click21.com.br) 
Este código pode ser distribuído ou utilizado de qualquer forma, só não pode ser vendido. 
*/ 

// função para gerar a data 
function gera_data()
{
    $data = getdate(); 
    $dia = $data["mday"]; 
    $mes = $data["mon"]; 
    $ano = $data["year"]; 
    $nome_mes = array("Sem mês!", "Janeiro", "Fevereiro", "Março", "Abril", 
                      "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", 
                      "Novembro", "Dezembro"); 

    return "$dia de ".$nome_mes[$mes]." de $ano"; 
}


// ------- configurações --------- 
$db = "nosso_banco_de_dados"; // nome do banco de dados 
$host = "localhost"; // host (local onde seu banco de dados está hospedado, 
                     // caso seja na sua máquina use "localhost") DESTAQUE 6 
$user = "eu"; // nome de usuário registrado no banco de dados 
$pass = "senha1234"; // senha do usuário 
$port = "5432"; // "porta" para conexão ao banco de dados 

$main_file = "noticias.php"; // nome deste arquivo 
$user_add = "eu"; // usuário que irá adicionar as notícias 
$password_add = "senha4321"; // senha para o usuário que irá adicionar as notícias 

// configurar as fontes no "<style>" acima 
$tipo_fonte1 = "n1"; // fonte do título do texto 
$tipo_fonte2 = "n2"; // fonte da data 
$tipo_fonte3 = "n3"; // fonte do texto 


// Variável com as informações para a conexão ser feita 
$string_connect = "host=$host port=$port dbname=$db user=$user password=$pass";
// Comando para conectar-se ao servidor
$connect = pg_pconnect($string_connect);

echo "<p align=\"center\" class=\"$tipo_fonte3\">NOTÍCIAS</font></p>"; 

if (!$acao) { 
    // Comando para fazer um "query" (uma requisição de informação) no banco de dados.
    // Note que, "SELECT * FROM news_m" já é um comando SQL conhecido. DESTAQUE 1
    $query = pg_query("SELECT * FROM news_m"); 

    $n_resultados = 3; // Número de notícias a serem exibidas 
    $n_linhas = pg_num_rows($query); // DESTAQUE 2 
    $n_pag = ceil($n_linhas / $n_resultados); // DESTAQUE 3 
    if (!isset($_GET['pagina'])) {
        $_GET['pagina'] = $n_pag-1;
    }
    $inicio = $_GET['pagina'] * $n_resultados; 
    $query = pg_query("SELECT * FROM news_m LIMIT $n_resultados OFFSET $inicio"); // DESTAQUE 4 

    // comando para listar as notícias
    while ($answer = pg_fetch_array($query)) { 
        echo "<p align=\"left\" class=\"$tipo_fonte1\"> ".$answer["info_title"]."</font></p>\n"; 
        $text = stripslashes($answer["info_text"]); 
        $text = ereg_replace("\n","<br>\n",$answer["info_text"]); 
        echo "<p align=\"left\" class=\"$tipo_fonte3\">\n$text\n</font></p>\n"; 
        echo "<p align=\"left\" class=\"$tipo_fonte2\">".$answer["info_time"]."</font></p>\n"; 
        echo "<hr color=\"#000000\" size=\"1\" noshade>\n\n"; 
    }

    // paginação de resultados
    echo "<p align=\"center\" class=\"$tipo_fonte3\">"; 
    if (($n_pag > 1) && ($_GET['pagina'] > 0)) {
        $num = $_GET['pagina'] - 1;
        echo " [<a href=\"$main_file?pagina=$num\"><<</a>]";
    }

    for ($i = 0; $i < $n_pag; $i++) { 
        $url = "$main_file?pagina=$i"; 
        $num = $i+1; 
        if ($i == $_GET['pagina']) {
            echo " [$num]";
        } else {
            echo " [<a href=\"$url\">$num</a>]";
        }
    }
    if (($n_pag > 1) && ($_GET['pagina'] < $n_pag - 1)) {
        $num = $_GET['pagina'] + 1;
        echo " [<a href=\"$main_file?pagina=$num\">>></a>]";
    }
    echo "</font></p>\n\n"; 

    echo "<p align=\"right\" class=\"$tipo_fonte3\"><a href=\"$main_file?acao=form\">Envie uma notícia</a> </font class=\"$tipo_fonte2\">(só usuário cadastrado)</font></p>\n\n"; 

} else { 
    switch ($acao) {
        // formulário para enviar notícia 
        case "form":
            echo "<p align=\"center\" class=\"$tipo_fonte3\">Envie uma NOTÍCIA!<br>Preencha todo formulário abaixo.</font></p>"; 
            echo "<form action=\"$main_file?acao=enviar\" method=\"post\" name=\"envia_dados\">\n"; 
            echo "<table width=\"70%\" border=\"0\" cellspacing=\"0\" align=\"center\" bgcolor=\"#FFCC66\">\n"; 
            echo " <tr>\n"; 
            echo " <td align=\"right\" valign=\"top\" class=\"$tipo_fonte3\">Usuário</font></td>\n"; 
            echo " <td align=\"left\" valign=\"top\"><input name=\"usuario\" type=\"text\" size=\"30\" maxlength=\"20\"></td>\n"; 
            echo " </tr>\n"; 
            echo " <tr>\n"; 
            echo " <td align=\"right\" valign=\"top\" class=\"$tipo_fonte3\">Senha</font></td>\n"; 
            echo " <td align=\"left\" valign=\"top\"><input name=\"senha\" type=\"password\" size=\"30\" maxlength=\"8\"></td>\n"; 
            echo " </tr>\n"; 
            echo " <tr>\n"; 
            echo " <td colspan=\"2\" align=\"left\" valign=\"top\" class=\"$tipo_fonte3\">Título</font> <input name=\"titulo\" type=\"text\" size=\"50\" maxlength=\"150\"></td>\n"; 
            echo " </tr>\n"; 
            echo " <tr>\n"; 
            echo " <td colspan=\"2\" align=\"left\" valign=\"top\" class=\"$tipo_fonte3\">Notícia</font><br><textarea name=\"texto\" cols=\"43\" rows=\"10\"></textarea></td>\n"; 
            echo " </tr>\n"; 
            echo " <tr>\n"; 
            echo " <td colspan=\"2\" align=\"center\" valign=\"top\"><input name=\"ok\" type=\"submit\" value=\"ENVIAR\"> <input name=\"limpa\" type=\"reset\" value=\"LIMPAR\"> <font id=\"$tipo_fonte3\">[<a href=\"$main_file\">Cancelar</a>]</font></td>\n"; 
            echo " </tr>\n"; 
            echo "</table>\n"; 
            echo "</form>\n"; 
            break; 

        case "enviar":
            if ($titulo && $texto && $ok && $senha == "$password_add" && $usuario == "$user_add") {
                // Se tudo estiver OK, envia uma nova notícia. Caso contrário, dá uma mensagem de erro. 
                $data = gera_data(); 
                $query = pg_query("INSERT INTO news_m (info_title,info_text,info_time) VALUES ('$titulo','$texto','$data')"); // DESTAQUE 5
                if ($query) {
                    echo "<p align=\"center\" class=\"$tipo_fonte3\" color=\"red\">NOTÍCIA ENVIADA COM SUCESSO!</font></p>\n<p align=\"center\" class=\"$tipo_fonte3\"><a href=\"$main_file\">Clique aqui</a> para voltar às NOTÍCIAS</font></p>";
                } else {
                    echo "<p align=\"center\" class=\"$tipo_fonte3\" color=\"red\">ERRO!</font></p>\n<p align=\"center\" class=\"$tipo_fonte3\">Não foi possível enviar sua notícia!!!<br><a href=\"$main_file?acao=form\">Clique aqui</a> para tentar novamente.</font></p>";
                } 
            } else { 
                echo "<p align=\"center\" class=\"$tipo_fonte3\" color=\"red\">ERRO!</font></p>\n"; 
                echo "<p align=\"center\" class=\"$tipo_fonte3\">Não foi possível enviar sua notícia, você deve preencher todos os campos do formulário.<br> <a href=\"$main_file?acao=form\">Clique aqui</a> para tentar novamente.</font></p>\n"; 
            } 
            break; 
    } 
} 
?> 

</body> 
</html>

Comentários:

Mostrando 1 - 10 de 12 comentários
Cara, tem um artigo idêntico a este no Viva o Linux...
23/01/2006 4:00am (~18 anos atrás)

Ribamar FS disse:
Antes de mais nada sinceramente gostaria de parabenizar ao Laudelino por compartilhar seus conhecimentos.
Tambémtrabalho com postgresql e php e sinto a dificuldade de material sobre a dupla. Sobre php+mysql tem muito.
Finalmente consegui desenvolver meu pequeno gerador de aplicativos em PHP com PostgreSQL. Quem quizer experimentar:

http://prdownloads.sourceforge.net/phplibdev
11/01/2006 7:40am (~18 anos atrás)

Olá...
gostei de sua didatica... facil compreenção....
gostei mt tambem do casamento de PHP e PostgreSQL...
Mas queria saber qual a vantagem de usar postgre ao inves de MySQL...
grato!
20/11/2005 6:32am (~18 anos atrás)

Bem gosto do post mas as vezes deixa a desejar por algumas frescurinhas como criar sequencias. hj ja faco os scrips com um arquivo com os comandos de SQL tanto para post como my.
14/11/2005 3:59am (~18 anos atrás)

Legal seu artigo, nunca mexi com postgresSQL, ele parece bem facil, vou tentar dar uma fuçada e ver com o ele é.
10/11/2005 2:47am (~18 anos atrás)

Parabéns pelo artigo!

Nem só de MySQL vivem os "PHPeiros"!!

bragil
25/10/2005 6:53pm (~18 anos atrás)

Ribamar FS disse:
Muito bom seu artigo.
Também trabalho com esta boa dupla (PHP+PG).

E também divulto algumas dicas no meu site Mambo:

http://ribafs.clanshosting.com
19/10/2005 8:09am (~18 anos atrás)

Olá Turma, meu nome e Nabucodonosor Coutinho, sou Coordenador do PostgreSQL Brasil (www.postgresql.org.br) e gostei muito do artigo do colega que está de parabéns.

Sobre material sobre PostgreSQL com PHP, disponibilizamos em nosso site um guia de funções do PHP para PostgreSQL na seção documentação, onde também dispomos de manuais e tutoriais do PostgreSQL em português.

Além disso contamos com uma lista de discussão onde trocamos experiências sobre o PostgreSQL e todos os amigos estão convidados a fazer parte de nossa comunidade.
13/10/2005 7:48am (~18 anos atrás)

tulio galli disse:
bom, mto bom, dã pra ver que nao é mto dificil sõ adptações mesmo
11/10/2005 11:33am (~18 anos atrás)

Diego Hellas disse:
Eu nunca mexi com Postgre fiz aqui e é legal, valeu.
11/10/2005 10:08am (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)