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.469 ]

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


Iniciando com a criação do banco de dados



Vamos mostrar como se deve fazer para criar um sistema para cadastro e controle de notícias usando PHP e MySQL. Como sempre lembro a todos que meus artigos são voltados especialmente para os mais leigos, que assim como eu, tem alguma dificuldade em entender artigos mais complexos.

Então o primeiro passo que eu sempre indico é: "iniciar o apache". Após isso iremos também abrir o nosso editor, ao meu conhecimento o mais frequentemente utilizado é o DreamWeaver, mas também existem inúmeros outros como o Eclipse ou até mesmo qualquer outro editor de texto mais comum, como o bloco de notas por exemplo.

Agora com o Apache devidamente "startado", vamos abrir o nosso browser e indicar nele o seguinte caminho:

http://localhost/phpmyadmin

E a partir daí começaremos nosso trabalho propriamente dito, pois nesse momento criaremos a nossa tabela que armazenará todos os dados das nossas notícias.

Vamos criar também uma pasta que chamaremos de "noticias" dentro da pasta htdocs do apache ou do xampp, de acordo com o que está sendo trabalhado, para salvar nela todos os arquivos que serão criados por nós daqui em diante.

Vamos pensar um pouco o que se deve ter de dados para que possamos validar nossas notícias? O que alguém que irá enviar uma notícia tem que mandar a respeito dessa notícia? Definiremos alguns detalhes disso aqui, criaremos os seguintes campos: nome (autor da notícia), sobrenome, cidade, estado, email, data, hora, titulo, subtitulo, mensagem, visualizar, id. É importante que criemos uma id pelo fato de podermos ter um controle e uma organização mais fácil de nossas notícias e campo visualizar será uma validação que o administrador do sistema fará.

Primeiramente criaremos um banco de dados no MySQL, como foi mostrado no artigo anterior. Criaremos um banco com o nome "noticias", após criaremos uma tabela dentro desse banco, para facilitar podemos usar o mesmo nome "noticias".

Em http://localhost/phpmyadmin/ digite o nome da tabela a ser criada, no nosso caso chamaremos de noticias, clique em criar, após isso construiremos uma tabela com a seguintes características:

CREATE TABLE noticias (
id int(5) NOT NULL auto_increment,
nome char(30) NOT NULL ,
sobrenome char(30) NOT NULL ,
cidade char(50) NOT NULL ,
estado char(2) NOT NULL ,
email char(80) ,
data date NOT NULL,
hora time NOT NULL ,
titulo char(100) NOT NULL ,
subtitulo char(200) ,
mensagem text NOT NULL ,
visualizar char(3) DEFAULT 'nao' ,
PRIMARY KEY (id),
UNIQUE id (id)
);

Não é difícil, basta copiar e colar todos os itens acima de uma vez no campo onde tem: "fazer procura(s) no banco de dados noticias" e depois clicar em executar. Pronto, aí será criada a tabela noticias dentro do banco noticias, é simples, não tem erro!

    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

PRADO - PHP 5 Framework

Gedit - Um bom editor pra programar em PHP!

Ato 3 - Estrutura de Controle e Funções

PHP e suas variáveis (básico)

MVC - Conceito e exemplo em PHP

  
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