Ciro Feitosa
ciro@futtura.net
Escrito em: 20/07/2000
Comece criando um banco de dados dedicado a este tutorial. Por exemplo, com o nome notícias; se já estiver no cliente MySQL, digite o seguinte:
create database noticias;
Por conseguinte, abra o banco de dados criado:
use noticias;
Agora é criar uma tabela para cadastro das suas notícias. Você pode seguir o exemplo abaixo, superprático:
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) , texto text NOT NULL , ver char(3) DEFAULT 'off' , PRIMARY KEY (id), UNIQUE id (id) );
Se você já tiver uma base de conhecimento em SQL, poderá saber o que cada linha acima realizará. Irei especificar o que você irá cadastrar em cada campo:
* são campos obrigatórios no cadastro
Agora com o banco de dados preparado, é hora de criarmos o sistema de cadastro de notícias do seu site. Este será o 2.º passo!
Este é um passo importante, onde um script criado em PHP irá inserir dados no banco de dados MySQL. Aqui iremos utilizar os conhecimentos passados no tutorial anterior, sobre questões básicas de PHP/MySQL. Primeiramente será criado o arquivo em HTML (formulário) para o cadastro de notícias. Vamos lá:
ARQUIVO cadastra.php
<?php
$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";
echo "<h1>Sistema de Cadastro de Notícias</h1>";
echo "<hr><br>";
echo "<form action='inserir.php' method='post'>";
echo "Nome:<input name='nome' type='text' size=30> *<br>";
echo "Sobrenome:<input name='sobrenome' type='text' size=30> *<br>";
echo "Cidade:<input name='cidade' type='text' size=30> *<br>";
echo "Estado:<i>(Exemplo: SP, RS, BA)</i><input name='estado' type='text' size=5> *<br>";
echo "Email: <i>(Exemplo: feitosac@yahoo.com)</i><input name='email' type='text' size=30><br><br>";
echo "Título do Texto:<input name='titulo' type='text' size=30> *<br>";
echo "Subtítulo do Texto:<textarea name='subtitulo' rows=5 cols=30></textarea><br>";
echo "Texto:<textarea name='texto' rows=10 cols=30></textarea> *<br>";
echo "<input name='data' type='hidden' value='$data'<>input name='hora' type='hidden' value='$hora'>";
echo "<input type='submit' value='Cadastrar'>";
echo "</form>";
echo "<br><hr>";
echo "<i>Campos marcados com <b>*</b> são obrigatórios no cadastro.<br>";
echo "<b>Observação</b>: Será inserido no seu cadastro a data atual, bem como a hora atual do cadastro<br>";
echo "Data: $novadata - Hora: $novahora<br>";
?>
FIM DO ARQUIVO cadastra.php
ARQUIVO inserir.php
<?php
//Vamos definir as variáveis de data e hora
//para inserção no banco de dados
//Agora com as variáveis de data e hora criadas
//vamos criar uma variável especial para a querie sql
$sql = "INSERT INTO noticias (nome, sobrenome, cidade, estado, email, data, hora,
titulo, subtitulo, texto) VALUES ('$nome', '$sobrenome', '$cidade', '$estado',
'$email', '$data', '$hora', '$titulo', '$subtitulo', '$texto')";
//Agora é hora de contatar o mysql
$conexao = mysql_connect("localhost", "root", "root")
or die ("Configuração de Banco de Dados Errada!");
//Substitua os valores acima caso não esteje de acordo com sua máquina
//Selecionando o banco de dados...
$db = mysql_select_db("noticias")
or die ("Banco de Dados Inexistente!");
//Inserindo os 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!");
echo "<h1>Cadastro efetuado com sucesso!</h1>";
?>
FIM DO ARQUIVO inserir.php
Irei mostrar como selecionar, por exemplo, as últimas 15 notícias inseridas no MySQL; isto é muito útil, para sites que têm seções do tipo "Últimas Notícias". Isto é feito com PHP novamente; faça conforme o exemplo abaixo, e salve como um arquivo em PHP.
ARQUIVO noticias.php
<?php
//Vamos precisar contar o MySQL novamente
$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
//Agora é realizar a querie de busca no banco de dados
$sql = "SELECT * FROM noticias WHERE ver = 'on' ORDER BY id DESC LIMIT 15";
// Irá selecionar as últimas 15 notícias inseridas
// O curioso aqui, é que ele só irá selecionar os campos onde
// estiver o ver=on, isto foi discutido logo atrás, como um
// controle de notícias pelo webmaster
// Por padrão o MySQL colocou off, mas o webmaster terá que
// revisar as notícias e alterar o campo ver para as que quiser validar.
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");
// Agora iremos "pegar" cada campo da notícia
// e organizar no HTML
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"];
$texto = $linha["texto"];
$ver = $linha["ver"];
$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 "<b>Código da Notícia</b>: $id";
echo "<br>";
echo "Autor: $nome $sobrenome - ($email)";
echo "<br>";
echo "Cidade: $cidade - Estado: $estado";
echo "<br>";
echo "Data: $novadata - Horário: $novahora";
echo "<br>";
echo "Título da Notícia: $titulo";
echo "<br>";
echo "Subtítulo da Notícia: <i> $subtitulo </i>";
echo "<br>";
echo "Notícia: $texto";
echo "<br>";
echo "Validado pelo Webmaster: ";
if ($ver=on) { echo "Sim"; } else { echo "Não"; }
echo "<hr>";
}
?>
FIM DO ARQUIVO noticias.php
$sql = "SELECT * FROM noticias WHERE ver = 'on' ORDER BY id DESC";
Neste passo irei explicar como mostrar todos os dados da tabela, para podermos modificá-los, apagá-los, etc. Primeiramente, devemos criar um arquivo PHP para mostrar todos os dados na tela, para depois podermos manuseá-los. Faça como o exemplo abaixo:
ARQUIVO controle.php
<?php
$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
$sql = "SELECT * FROM noticias ORDER BY id DESC";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");
echo "<table width=740 border=1 cellpadding=1 cellspacing=1>";
echo "<tr>";
echo "<th width=15>ID:</th>";
echo "<th width=100>Nome:</th>";
echo "<th width=100>Sobrenome:</th>";
echo "<th width=100>Cidade:</th>";
echo "<th width=15>UF:</th>";
echo "<th width=100>Email:</th>";
echo "<th width=30>Data:</th>";
echo "<th width=30>Hora:</th>";
echo "<th width=100>Título:</th>";
echo "<th width=50>Disponível?</th>";
echo "<th width=50>Alterar</th>";
echo "<th width=50>Excluir</th>";
echo "</tr>";
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"];
$ver = $linha["ver"];
$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 "<tr>";
echo "<th width=15>$id<br></th>";
echo "<th width=100>$nome<br></th>";
echo "<th width=100>$sobrenome<br></th>";
echo "<th width=100>$cidade<br></th>";
echo "<th width=15>$estado<br></th>";
echo "<th width=100>$email<br></th>";
echo "<th width=30>$novadata<br></th>";
echo "<th width=30>$novahora<br></th>";
echo "<th width=100>$titulo<br></th>";
echo "<th width=50>$ver<br></th>";
echo "<th width=50><a href='alterar.php?id=$id'>Alterar</a><br></th>";
echo "<th width=50><a href='excluir.php?id=$id'>Excluir</a><br></th>";
echo "</tr>";
echo "<br>";
}
echo "</table>";
?>
FIM DO ARQUIVO controle.php
O próximo passo agora é criar os arquivos alterar.php e excluir.php, responsáveis pela alteração e exclusão dos dados. É muito simples o código, veja só:
ARQUIVO excluir.php
<?php
$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
$sql = “DELETE FROM noticias WHERE id='$id'”;
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a exclusão dos dados.");
echo “<h1>A notícia foi excluída com êxito!</h1>”;
?>
FIM DO ARQUIVO excluir.php
ARQUIVO alterar.php
<?php
$conexao = mysql_connect("localhost","root","root");
$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"];
$texto = $linha["texto"];
$ver = $linha["ver"];
$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='alterar_db.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: feitosac@yahoo.com)</i><input name='email_novo' type='text'
value='$email' size=30><br><br>";
echo "Título do Texto:<input name='titulo_novo' type='text' value='$titulo' size=30> *<br>";
echo "Subtítulo do Texto:<textarea name='subtitulo_novo' rows=5 cols=30>$subtitulo</textarea><br>";
echo "Texto:<textarea name='texto_novo' rows=10 cols=30>$texto</textarea> *<br>";
echo "Disponibilizar? (on ou off): <input name='ver_novo' type='text' value='$ver' size=5><br>";
echo "<input type='submit' value='Alterar'>";
echo "</form>";
echo "<br><hr>";
}
?>
FIM DO ARQUIVO alterar.php
Agora basta criarmos o arquivo alterar_db.php que irá receber os dados deste arquivo (alterar.php) e alterará seus respectivos dados no MySQL. É muito simples:
ARQUIVO alterar_db.php
<?php
$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
$sql = "UPDATE noticias SET id='$id_novo',nome='$nome_novo',sobrenome='$sobrenome_novo'
,cidade='$cidade_novo',estado='$estado_novo',email='$email_novo',titulo='$titulo_novo'
,subtitulo='$subtitulo_novo',texto='$texto_novo',ver='$ver_novo' WHERE id='$id'";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta ao banco de dados");
echo "<h1>Notícia alterada com sucesso!</h1>";
?>
FIM DO ARQUIVO alterar_db.php
Finalmente, chegamos ao fim deste tutorial, que lhe ajudou a criar um "Portal de Notícias baseado em PHP/MySQL". Queria, por fim, agradecer a todos que me apoiaram, inclusive a um amigão, RENAS (www.linuxfunciona.com.br). Quer aprender mais sobre PHP? Leia, pesquise, pratique! Assim você você vai poder se tornar um grande programador em PHP; no box "para saber mais" indico bons sites sobre este assunto.
|
Para saber mais
|