Hola PHPeros, este tutorial será el primero de los 3 que pretendo hacer sobre este tema

Voy a intentar ayudaros lo maximo posible en cuanto al tema de los sistemas de noticias.
Para evitar confusiones,
el sistema se hará utilizando una base de datos MySQL.
En esta primera parte del tutorial vamos a dedicarnos a crear la base del sistema de noticias. En la segunda parte del tutorial avanzaremos en el sistema añadiendo un archivo de administración sencillo y, por ultimo, en la tercera parte del tutorial se avanzará aun mas añadiendo opciones BBCode y Emoticonos.
Antes de nada vamos a comentar las partes
basicas del Sistema de Noticias:
- Formulario de Envio
- Archivo de Muestra
[Formulario de Envio]:
El formulario será sencillo, 1 campo de texto, un cuadro de texto y un Boton de Envio.
<form action="enviar.php" method="POST">
<input type="text" name="titulo" value="Titulo de la noticia"><br>
<textarea name="noticia">El texto de la noticia</textarea><br>
<input type="submit" name="enviar" value="Enviar Noticia">
</form>
Los datos enviados desde el formulario deben ser procesados y almacenados en la base de datos, eso lo conseguimos con el PHP. Para guardar datos en una base de datos MySQL debemos crear primeramente una tabla en la base de datos.
Para crear una tabla en la base de datos debemos usar codigo SQL:
create table `noticias` (
id int primary key auto_increment,
titulo varchar(255) not null,
noticia text not null,
autor varchar(255) not null,
fecha varchar(255) not null
);
Con el codigo SQL anterior crearemos una tabla llamada
noticias en la que habrán 5 campos,
ID (Numero Identificador de cada noticia),
TITULO,
NOTICIA,
AUTOR (Lo usaremos en la 2ª parte del tutorial),
FECHA (2ª Parte del tutorial).
Explicación Detallada del Codigo SQL anterior:
- create table `noticias` // Crea una tabla llamada "noticias"
- id int primary key auto_increment // Crea un campo llamado "id" que cada vez se incrementa en 1 unidad.
- titulo varchar(255) not null // Crea un campo llamado "titulo" de tipo texto (Máx. 255 Caracteres) que puede ser nulo (vacio).
- noticia text not null // Crea un campo llamado "noticia" de gran capacidad de texto
- autor varchar(255) not null // Crea un campo llamado "autor" de tipo texto (Máx. 255 Caracteres) que puede ser nulo (vacio).
- fecha varchar(255) not null // Crea un campo llamado "fecha" de tipo texto (Máx. 255 Caracteres) que puede ser nulo (vacio).
El formulario se procesa mediante PHP:
<?PHP
if (isset($_POST['enviar'])) { //Se comprueba si el boton enviar ha sido pulsado
if (!empty($_POST['titulo']) && !empty($_POST['noticia'])) { //Se comprueba si los campos no estan vacios
$sql = "INSERT INTO `noticias` (titulo,noticia,autor,fecha) values"; //Definimos el codigo para...
$sql.= "('".$_POST['titulo']."','".$_POST['noticia']."','Autor','".time()."')"; //...Ingresar los datos del formulario en la DB
if (mysql_query($sql)) { //Aquí se ingresa y se comprueba si se ha ingresado bien
echo "Noticia Enviada Correctamente";
} else { //Si algo ha fallado
echo "Ha ocurrido un error, no se ha procesado la noticia";
}
} else { //Si faltan campos por completar
echo "La noticia no se ha enviado, completa el formulario";
}
} else { ?>
<form action="enviar.php" method="POST">
<input type="text" name="titulo" value="Titulo de la noticia"><br>
<textarea name="noticia">El texto de la noticia</textarea><br>
<input type="submit" name="enviar" value="Enviar Noticia">
</form>
<? } ?>Para mostrar la noticia, primero tenemos que extraerla de la base de datos y despues procesar los datos extraidos para mostrarlos adecuadamente.
<?PHP
$query = @mysql_query("SELECT * FROM `noticias` ORDER BY `id` DESC"); //Se extraen las noticias en orden reciente
if (@mysql_num_rows($query)) { // Se comprueba si hay alguna noticia publicada
while ($noticia = @mysql_fetch_array($query)) { //Se hace un bucle para mostrar cada noticia una a una
echo '<table border="0" width="100%">
<tr><td align="center">'.$noticia['titulo'].'</td></tr>
<tr><td>'.$noticia['noticia'].'</td></tr>
<tr><td>Enviada por '.$noticia['autor'].' || Fecha: '.$noticia['fecha'].'</td></tr>
</table><hr>';
}
} else {
echo "No hay ninguna noticia publicada";
}
@mysql_free_result($noticia); //Se borran los datos usados
?>Funciones Utilizadas:- isset(); // Comprueba si una variable tiene valores
- empty(); // Comprueba si una variable esta vacia
- time(); // Devuelve la hora, fecha... del servidor
- mysql_query(); // Ejecuta codigos SQL en la base de datos
- mysql_num_rows(); // Devuelve numero de filas en una tabla MySQL
- mysql_fetch_array(); // Extrae datos de una base de datos MySQL a una matriz
- mysql_free_result(); // "Limpia" los datos extraidos de la base de datos.
Para entender completamente el codigo debes "saber":- Instrucciones PHP (condicionales, bucles, ...) --> Lee más...
- Variables SuperGlobales ($_POST, $_GET, $_SERVER, ...)
- Fundamentos BASICOS de MySQL