Sistema de noticias: los comentarios
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 <a href=”ver.php?id=1″> 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))
<?
//recibimos la variable id enviada en el enlace por GET
$id=$_GET[id];
//conectamos a la base
$connect=mysql_connect("servidor","nombre de la base","pass")';
//Seleccionamos la base
mysql_select_db("nombre de la base",$connect);
//hacemos las consultas
$result=mysql_query("select * from noticias where id_noticia='$id'"
,$connect);
//Una vez seleccionado el registro, mostramos la noticia completamente
<?
while($row=mysql_fetch_array($result))
{
echo '<h2>'.$row[titulo].'</h2><br>
<p>'.$row[articulo].'</p><br>
<tu div>'.$row[autor].' | '.$row[fecha].' | '.$row[categoria].' |
'<a href="ver.php?id='.$row[id].'">comentarios()</a> |
<a href="editar.php?id='.$row[id].'">editar</a>';</tu div>
}
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.
<?
//recibimos la variable id enviada en el enlace por GET
$id=$_GET[id];
//conectamos a la base
$connect=mysql_connect("servidor","nombre de la base","pass")';
//Seleccionamos la base
mysql_select_db("nombre de la base",$connect);
//hacemos las consultas
$result=mysql_query("select * from noticias where id_noticia='$id'"
,$connect);
//Una vez seleccionado el registro, mostramos la noticia completamente
<?
while($row=mysql_fetch_array($result))
{
result2=mysql_query("select * from comentarios where id_noticia='$id'"
,$connect);
$totalcomentarios=mysql_num_rows($result2);
echo '<h2>'.$row[titulo].'</h2><br>
<p>'.$row[articulo].'</p><br>
<tu div>'.$row[autor].' | '.$row[fecha].' | '.$row[categoria].' |
'<a href="ver.php?id='.$row[id].'">comentarios('.$totalcomentarios.')</a> |
<a href="editar.php?id='.$row[id].'">editar</a>';</tu div>
}
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.
<?
echo '<h2>Comentarios:</h2><br>
//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 '<p>'.$rows[comentario].'</p>
<tu div>'.$rows[nick] .'| '.$rows[email].'</tu div>
';
?>
Mostramos los comentarios y ahora pondremos un formulario en donde puedan escribirlos
<form action="editacomentarios.php" method="post"> <input type="hidden" name="id" value="'$id'"><br> Nick:<br> <input type="text" name="nick"><br> E-Mail:<br> <input type="text" name="email"><br> Escriba el comentario<br> <textarea name="comentario" cols="50" rows="10"></textarea> <br> < input type="submit" value="Enviar comentario"><br> </form>
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.
<?
//editacomentarios.php
//recibimos las variables enviadas por el formulario
$id=$_POST[id];
$nick=$_POST[nick];
$email=$_POST[email];
$comentario=$_POST[comentario];
//conectamos a la base
$connect=mysql_connect("servidor","nombre de la base","pass")';
//Seleccionamos la base
mysql_select_db("nombre de la base",$connect);
//Ingresamos los comentarios a su tabla
mysql_query("insert into comentarios(id,nick,email,comentario)
values('$id','$nick','$email','$comentario'",$connect)
header("location: ver.php?id='.$id.'");
?>
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.

(7 votos, promedio: 4.14 de 5)