create table noticias ( id_noticia int(4) auto_increment not null, autor varchar(255), titulo varchar(255), categoria varchar(255), fecha datetime not null, noticia blob, key(id_noticia) ) Este tutorial consta de 3 partes: La primera genera un sistema de noticias a través de un panel de administración y las muestra en orden según su fecha, la segunda parte muestra un sistema de edición y borrado de estas noticias. La tercera y última parte veremos como generar un sistema de comentarios para nuestras noticias. Primero creamos la base de datos para las noticias: create table noticias ( id_noticia int(4) auto_increment not null, autor varchar(255), titulo varchar(255), categoria varchar(255), fecha datetime not null, noticia blob, key(id_noticia) ) Un poco de explicación: id_noticia se incrementará cada vez que insertemos un registro desde el panel de administración (que crearemos luego) lo que nos facilitará la lectura de la noticia y asignarle sus respectivos comentarios. Lo demás está a la vista. Ahora veremos el código a incluir en la página que llamaremos index.php (Que original ¿no?) Sistema de noticias //Recogemos las consultas en un array y las mostramos '.$row[titulo].'

'.$row[articulo].'


'.$row[autor].'|'.$row[fecha].'| '.$row[categoria].' | 'comentarios() | editar'; //Hemos puesto los enlaces para "Comentarios" y "Editar" cosa que ocuparemos más adelante como se puede ver el id nos servirá para casi todo. } mysql_free_result($result) ?> Nota: Se puede usar cualquier función de conversión de fechas para mostrar fecha en español y separarla de la hora. Acá no se hará por no ser el fin de este tutorial Es hora de crear el panel de administración. En realidad es en donde generamos la noticia que luego mostrará el index. Lo llamaremos administrar.php (otro destello de creatividad). Obviaremos el código de la estructura html y nos enfocaremos en el formulario que enviará los datos
Título noticia:

Autor:

Categoría:

Escriba el articulo


Como vemos, este formulario envía por método POST todas las variables necesarias para el llenado de nuestra base. Dichas variables las recibe un script llamado procesanoticia.php el cual veremos a continuación: Se llena la base con todos los parámetros recibidos del formulario. Cabe destacar que para la fecha se ocupo la funcion NOW() esta función rellena la base con la fecha y hora del servidor. La primera parte y el trabajo pesado ya está hecho. Falta que estas noticias puedan ser editatas o borradas, tema que se verá en la Segunda parte vimos como construir un sistema de noticias, manejado por un panel de amdinistración. En esta parte veremos como editar y borrar dichas noticias Recordemos que en la primera parte creamos un link llamado editar y su enlace tenía esta estructura llamando a la página editar.php y en donde el id cambia su número dependiendo de la noticia. Con esto en claro, es hora de ver el código de editar.php Nota: Una vez más obviaremos la estructura html y pondremos el código PHP.
Título noticia:

Autor:

Categoría:

Escriba el articulo

< input type="submit" value="Editar">
} mysql_free_result($result) mysq_close($connect) ?> En este script recibimos por URl la variable $id desde el enlace de nuestro sistema de noticias visto en la primera parte . Este valor recibio lo almacenamos y utilizamos para la selección solo del artículo que nos interesa editar. Una vez más utilizamos un formulario, con la salvedad de que se agregó el atributo value para mostrar los datos recibidos de la base, este formulario nos enviará a otro script, llamado edit.php el que se encargará de hacer la modificación en la base, y lo vemos a continuación Nota: Para el borrado haremos un enlace en el script anterior donde más nos guste, depende del diseño de nuestra página. El enlace debe tener la siguiente estructura
. Luego veremos como se borra. Modificamos la base con los datos recibidos. Una vez más la famosa id fue de gran utilidad, pues con ella solo modificamos los registros pertenecientes a ella y no otros o todos. Ahora veremos como se borra. Este archivo se llama borrar.php y ya fue mencionado como generar un enlace a él anteriormente. Se borran los registros, creo que este script no requiere mayor explicación. Ahora solo queda ver como añadir y leer comentarios en nuestro sistema y lo veremos a continuación en la Tercera parte Para finalizar nuestro sistema de noticias daremos la posibilidad a los usuarios de participar con sus comentarios. Recordemos que en la primera parte creamos un link llamado comentarios y su enlace tenía esta estructura llamando a la página ver.php y en donde el id cambia su número dependiendo de la noticia que queremos visualizar. Con esto en claro, es hora de ver el código de ver.php Nota: Una vez más obviaremos la estructura html y pondremos el código PHP //creamos la tabla de los comentarios create table comentarios( id int(4) not null, nick varchar(255), email varchar(255), comentario blob, key(id))'.$row[titulo].'

'.$row[articulo].'


'.$row[autor].' | '.$row[fecha].' | '.$row[categoria].' | '
comentarios() | editar'; } mysql_free_result($result) ?> La manera de mostrar la noticia completa es idéntica que en el script del index.php visto en la primera parte. Ahora haremos las modificaciones para mostrar los comentarios. '.$row[titulo].'

'.$row[articulo].'


'.$row[autor].' | '.$row[fecha].' | '.$row[categoria].' | 'comentarios('.$totalcomentarios.') | editar'; } mysql_free_result($result) ?> Acá agregamos unas líneas al bucle while solamente para saber la cantidad de cometarios que pertenecen a este (1, 2, 0 la cantidad x de comentarios por artículo) y lo almacenamos en la variable $totalcomentarios Ahora veremos el código para seleccionar los comentarios y visualizarlos. Comentarios:
//hago el llamado a la base $result3=mysql_query("select * from comentarios where id_noticia='$id'" ,$connect); //Bucle while para visualizarlos while(rows=mysql_fetch_array($result3) { echo '

'.$rows[comentario].'

'.$rows[nick] .'| '.$rows[email].' '; ?> Mostramos los comentarios y ahora pondremos un formulario en donde puedan escribirlos

Nick:

E-Mail:

Escriba el comentario

< input type="submit" value="Enviar comentario">
Acá el formulario enviará las variables al script editacomentarios.php el cual las procesará y llenará la tabla comentarios Nota: Nótese que se envia la variable $id en un campo oculto, esto servirá para saber a qué noticia pertenece dicho comentario. Con los comentarios insertados en su tabla queda listo y finalizado el sistema de noticias. Disfrútenlo. Conclusiones Si bien este modesto sistema de noticias debería funcionar a la perfección y prestar una funcionalidad digna, es importante señalar que puede mejorar mucho, incluyéndole por ejemplo: Fechas en español, CSS sin dudas, algún paginador y sentencia limit para visualizar cantidades X de artículos por páginas, directivas de seguridad como sistema de auntentificación, restringir etiquetas html en los comentarios, etc. Eso ya queda en sus manos y estoy seguro que lo pueden mejorar mucho. En cuanto al autor puedo decirles que soy un aprendíz de PHP y leyéndo tutoriales y mucho google logré terminar mi blog y crear este pequeño artículo, que debido a mi calidad de aprendíz puede contener muchos errores, aunque no mayores.

Thursday, August 24, 2006

create table noticias (
id_noticia int(4) auto_increment not null,
autor varchar(255),
titulo varchar(255),
categoria varchar(255),
fecha datetime not null,
noticia blob, key(id_noticia)
)

0 Comments:

Post a Comment

<< Home