Sistema de notícias em PHP

Este é um sistema de notícias simples para iniciantes que tem maiores dificuldades com scripts mais complexos.

[ Hits: 87.449 ]

Por: Saulo José Neco Capistrano em 29/06/2008


Arquivos excluir.php e alterar.php



Com a finalização do nosso arquivo de controle, criaremos os arquivos que farão alterações e exclusões de notícias, são arquivos bem simples. De início vamos ao excluir.php.

excluir.php

<?

$conexao = mysql_connect("localhost","","");
$db = mysql_select_db("noticias");
$sql = "DELETE FROM noticias WHERE id='$id'";
$resultado = mysql_query($sql) or die ("Não foi possível excluir os dados.");
echo "<h1>A notícia foi excluída com êxito!</h1>";

?>

Está vendo como é simples? Nem pensou que não, já acabou!

Agora vamos ao arquivo de alteração.

alterar.php

<?
$conexao = mysql_connect("localhost","","");
$db = mysql_select_db("noticias");
$sql = "SELECT * FROM noticias WHERE id='$id'";
$resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta ao banco de dados");

while ($linha=mysql_fetch_array($resultado)) {
   $id = $linha["id"];
   $nome = $linha["nome"];
   $sobrenome = $linha["sobrenome"];
   $cidade = $linha["cidade"];
   $estado = $linha["estado"];
   $email = $linha["email"];
   $data = $linha["data"];
   $hora = $linha["hora"];
   $titulo = $linha["titulo"];
   $subtitulo = $linha["subtitulo"];
   $mensagem = $linha["mensagem"];
   $visualizar = $linha["visualizar"];

   $novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
   $novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min";

   echo "<h1>Alterar Cadastro.</h1>";
   echo "<hr><br>";
   echo "<form action='alteradb.php?id=$id' method='post'>";
   echo "Código da Notícia: <input name='id_novo' type='text' value='$id' size=20><br>";
   echo "Data: $novadata<br>";
   echo "Hora: $novahora<br>";
   echo "Nome:<input name='nome_novo' type='text' value='$nome' size=30> *<br>";
   echo "Sobrenome:<input name='sobrenome_novo' type='text' value='$sobrenome' size=30>

*<br>";
   echo "Cidade:<input name='cidade_novo' type='text' value='$cidade' size=30> *<br>";
   echo "Estado:<i>(Exemplo: SP, RS, BA)</i><input name='estado_novo' type='text' value='$estado' size=5> *<br>";
   echo "Email: <i>(Exemplo: exemplo@exemplo.com)</i><input name='email_novo' type='text' value='$email' size=30><br><br>";
   echo "Título da Notícia:<input name='titulo_novo' type='text' value='$titulo' size=30> *<br>";
   echo "Subtítulo da Notícia:<textarea name='subtitulo_novo' rows=5 cols=30>$subtitulo</textarea><br>";
   echo "Mensagem:<textarea name='mensagem_novo' rows=10 cols=30>$mensagem</textarea> *<br>";
   echo "Disponibilizar (sim ou não): <input name='visualizar_novo' type='text' value='$visualizar' size=5><br>";
   echo "<input type='submit' value='Alterar'>";
   echo "</form>";
   echo "<br><hr>";
}

?>

Página anterior     Próxima página

Páginas do artigo
   1. Iniciando com a criação do banco de dados
   2. Arquivo cadastrar.php
   3. Arquivo inserir.php
   4. Arquivo noticias.php
   5. Arquivo controlar.php
   6. Arquivos excluir.php e alterar.php
   7. Arquivo alteradb.php
Outros artigos deste autor

Cadastro e login em PHP

Leitura recomendada

Sistema de Gerenciamento de Conteúdo

Tratamento de exceções do PHP: uma introdução para iniciantes

Renascendo na Programação

If inline para PHP

Construindo um ToolBar com botões no PHP-GTK

  
Comentários
[1] Comentário enviado por coffani em 30/06/2008 - 23:40h

Ótimo artigo, para iniciantes é uma excelente forma de aprendizado, Parabéns

[2] Comentário enviado por aprendiz_ce em 05/07/2008 - 09:41h

Otimo artigo para estudos!!!

Agora, aproveitando o contato... Me tira uma dúvida por gentileza.

Segui o artigo à risca... Tudo funciona certinho, mas não sei o que pode estar acontecendo, pois os dados não estão sendo gravados. Ao enviar o registro é inserido no DB, só que os campos ficam em branco, o único campo que é preenchido é o "id" pois o mesmo é "auto-incremento". O que pode estar acontecendo?

Revisei:

1) O DB tá cerinho, pois consigo inserir registro pelo phpmyadmin.
2) O script "cadastro.php" está sem erro algum, pois quando existia o browse aponta o devido erro.
3) O DB foi criado como administrado e o script também está acessando o DB como administrador.

Estou "tonto" com esse problemas, pois sou programador a muitos anos e sei como a coisa funciona... Conheço SQL e ASP (acho é que um boa base para aprender PHP), mas estou estudando PHP, pois tenho um "xodó" com o PHP e quero passar a utiliza-lo com mais frequencia.

Muito obrigado pela sua atenção e aguardo retorno.

Parabéns pelo sua artigo!!!

Abraço.

[3] Comentário enviado por removido em 13/10/2008 - 08:03h

Olá a todos do VOL,

Primeiramente, parabens pelo artigo excelente.
Tive o mesmo problema que o coffani. Daí, pensei na possibilidade deste artigo ter sido elaborado em uma versão anterior ao PHP5 a qual utilizo. Então a questão do erro ao postar uma noticia, eu resolvi "uma parte" substituindo o código do arquivo inserir.php pelo código abaixo. Porém o campo referente a data ainda continua vazio "00:00:00".


<?php
$con = mysql_connect("localhost","noticias", "senha");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("noticias", $con);

$sql="INSERT INTO noticias (nome, sobrenome, cidade, estado, email, data, hora, titulo, subtitulo, mensagem)
VALUES
('$_POST[nome]','$_POST[sobrenome]','$_POST[cidade]','$_POST[estado]','$_POST[email]',
'$_POST[data]','$_POST[hora]','$_POST[titulo]','$_POST[subtitulo]','$_POST[mensagem]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)
?>

Creio que este erro da data esteja relacionado a variável $data no arquivo cadastrar.php

Vou verificar com mais calma, mas, se alguém tiver a solução, seremos gratos pela ajuda.

Muito Linux a todos

[4] Comentário enviado por comfaa em 28/10/2008 - 13:00h

muito legal !!!

[5] Comentário enviado por viniciusmmm em 01/02/2009 - 18:57h

creio que isso aqui possa resolver , cria essas variaveis ai.

$data = date("Y-m-d");
$hora = date("H:i:s");
$novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
$novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min";




[6] Comentário enviado por rumao em 02/04/2009 - 17:28h

Este tutorial foi tirado na cara dura do Livro:
Treinamento Prático em PHP da Digerati..
E pelo visto nem os bugs foram tratados.

[7] Comentário enviado por saulocapistrano em 03/04/2009 - 14:40h

Cara eu percebi que você foi um tanto rude no comentário que fez ao meu artigo, bom só para você saber, pois eu não gosto que digam qualquer coisa que seja sobre mim que não seja verdade, seguinte o artigo foi feito por mim, as minhas fontes não preciso expor porém só para você ficar sabendo eu fiz no braço mesmo, estudando por alguns livros, e pela Internet minha intenção neste artigo foi somente facilitar para todos que interessassem a facilidade que eu não tive... não sou nenhum especialista e só para constar no meu ambiente de trabalho quando eu fiz não deixei nenhum erro. Não coloquei o artigo com erro, mesmo porque se tivesse tanto erro como você deixa a entender que tem não teria nem sido aprovado pela comissão do viva o linux mesmo assim agradeço pela sua observação.
Não tenho cara dura.

[8] Comentário enviado por quemtava em 24/04/2009 - 22:18h

Cara muito bem explicadinho _ parabens pela iniciativa de compartilhar conhecimentos -

mas galera como sou muito iniciante mesmo na area dava para alguem dar uma ajudinha abaixo o erro

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'pontonob'@'localhost' (using password: NO) in /home/pontonob/public_html/noticias/inserir.php on line 6
Configuração de Banco de Dados Errada!

acho que criei o db certino com o nome de noticias igual fala no artigo..

se alguem puder ajudar desde já agradeço e caso alguem precise de alguma ajuda me ramo é no desenvolvimento de anuncios .....

[9] Comentário enviado por marcusnunes em 01/05/2009 - 15:29h

Muito bom.
Exemplo clássico para iniciantes :)

[10] Comentário enviado por adener em 23/07/2009 - 03:17h

Muuuuuuuuito bom ,,, Mais concerta os BUGS PLS ''' Não tá aparecendo as notícias postadas :'(

[11] Comentário enviado por NioDio em 21/01/2011 - 15:48h

Pessoal desculpe por ter sido o coveiro deste topico mas eh que estou estudando php e peguei um script igualsinho a este na net e tem o msm problema, vc escreve o cadastro mas quando manda cadastrar o db fica em branco soh salvando a chave primaria que é auto_increment. Testei o banco de dados cadastrando pelo mysql na linha de comando e deu certo, salvou certinho o problema deve estar no arquivo inserir...

<?php

$sql = "INSERT INTO noticias(nome,sobrenome,cidade,estado,email,data,hora,titulo,subtitulo, mensagem) VALUES ('$nome','$sobrenome','$cidade','$estado','$email','$data','$hora','$titulo',$subtitulo,$mensagem)";
/* Temos aqui uma variável que recebe um comando para fazer inserção no banco de dados, o papel dessa variável se resume a
receber cada valor que for enviado pelo usuário*/

$conexao = mysql_connect("localhost", "root", "inaciohacker") or die ("Configuração de Banco de Dados Errada!"); /* Essas configurações são referentes ao meu banco, existe bancos por exemplo que usam ("localhost", "root, "root").*/
$db = mysql_select_db("noticias") or die ("Banco de Dados Inexistente!");// aqui estamos indicando qual é o nosso banco de dados
$sql = mysql_query($sql) or die ("Houve erro na gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!");// Agora estamos enviando os dados
echo "<h1>Cadastro efetuado com sucesso!</h1>";
echo "<th width=50><a href='cadastrar.php'>Novo cadastro</a><br></th>";
echo "<th width=50><a href='noticias.php'>Ver lista de notícias</a><br></th>";

?>

alguem saberia me passar uma dia de oque devo fazer para que este script funf bleza? vlw

[12] Comentário enviado por elton.alex em 24/04/2012 - 14:17h

<?php
$conexao = mysql_connect("localhost", "root", "") or die (mysql_error()+"Configuração de Banco de Dados Errada!");
/* Essas configurações são referentes ao meu banco, existe bancos por exemplo que usam ("localhost", "root, "root").*/
$db = mysql_select_db("noticias") or die ("Banco de Dados Inexistente!");// aqui estamos indicando qual é o nosso banco de dados


// Recebendo Váriaveis

$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$email = $_POST['email'];
$titulo = $_POST['titulo'];
$subtitulo = $_POST['subtitulo'];
$mensagem = $_POST['mensagem'];

// Questão Data e hora resolvidos na instrução mysql

$sql = "INSERT INTO noticias (nome, sobrenome, cidade, estado, email, data, hora, titulo, subtitulo, mensagem)
VALUES ('$nome', '$sobrenome', '$cidade', '$estado', '$email', date(now()),time(now()) , '$titulo', '$subtitulo', '$mensagem')";
/* Temos aqui uma variável que recebe um comando para fazer inserção no banco de dados, o papel dessa variável se resume a
receber cada valor que for enviado pelo usuário*/

$resultado = mysql_query($sql) or die ("Houve erro na gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!");// Agora estamos enviando os dados
echo "<h1>Cadastro efetuado com sucesso!</h1>";

?>


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts