Lo prometido es deuda como dije en uno de mis post. Me han ayudado con un par de dudas que tuve con este sistema de noticias y comentarios, el cual estaba plagado de errores de código, ahora expondré éste código totalmente corregido para el disfrute de la comunidad, la explicación la teneís al poner en google "sistema de noticias y comentarios php" esta en webtaller, scourdesign... Todo es el mismo código (con los mismos errores ¬¬) aquí el corregido con unas pequeñas modificacione. Aviso el código es MUY básico, queda en tu mano modificarlo a tu gusto
Primero ejecutamos la sentencia en la base de datos que queramos 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)
)
Y ahora para los comentarios:
create table comentarios(
id int(4) not null,
nick varchar(255),
email varchar(255),
comentario blob, key(id))
Ahora el código:
index.php
Código PHP:
<html>
<head>
<title>Sistema de noticias</title>
<?php
//conectamos a la base
$connect=mysql_connect("localhost","usuario","password");
//Seleccionamos la base
mysql_select_db("tu_base_de_datos",$connect);
//hacemos las consultas
$result=mysql_query("select * from noticias order by fecha Desc", $connect);
$totalregistros=mysql_num_rows($result);
$result2=mysql_query("select * from comentarios where id",$connect);
$totalcomentarios=mysql_num_rows($result2);
?>
</head>
<body>
<?php
//Recogemos las consultas en un array y las mostramos
while($row=mysql_fetch_array($result))
{
$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect);
$totalcomentarios=mysql_num_rows($result2);
echo '<h3>'.$row[titulo].'</h3>'.$row[articulo].''.$row[autor].' | '.$row[categoria].' | '.$row[fecha].'<br> '.$row[noticia].' <br> <a href="ver.php?id='.$row[id_noticia].'">comentarios('.$totalcomentarios.')</a> |
<a href="editar.php?id='.$row[id_noticia].'">editar</a> | <a href="borrar.php?id='.$row[id].'">borrar</a><br><br>';
}
mysql_free_result($result)
?>
</body>
</html>
administrar.php:
Código PHP:
<form action="procesanoticia.php" method="post">
Título noticia:<br>
<input type="text" name="titulo"><br>
Autor:<br>
<input type="text" name="autor"><br>
Categoría:<br>
<input type="text" name="categoria"><br>
Escriba el articulo<br>
<textarea name="articulo" cols="50" rows="10"></textarea><br>
<input type="submit" value="Publicar"><br>
</form>
procesanoticia.php:
Código PHP:
<?php
//recibo las variables enviadas por el formulario
$titulo=$_POST[titulo];
$autor=$_POST[autor];
$categoria=$_POST[categoria];
$articulo=$_POST[articulo];
//conecto a la base
$connect=mysql_connect("localhost","usuario","password"); // se conecta con la db
//Seleccionamos la base
mysql_select_db("tu_base_de_datos",$connect);
//inserto los registros
$query = "INSERT INTO noticias (titulo,autor,categoria,noticia,fecha) VALUES('$titulo','$autor','$categoria','$articulo',NOW())";
mysql_query($query) or die(mysql_error());
header("location: index.php");
?>
editar.php
Código PHP:
<?php
$id=$_GET["id"];
$connect = mysql_connect("localhost","usuario","password");
mysql_select_db("tu_base_de_datos",$connect);
$result=mysql_query("select * from noticias where id_noticia='$id'",$connect);
while($row=mysql_fetch_array($result))
{?>
<form action="edit.php" method="post">
<input type="hidden" name="id" value = "<?php echo $row['id_noticia'];?>"><br>
Título noticia:<br>
<input type="text" name="titulo" value= "<?php echo $row['titulo']; ?>"><br>
Autor:<br>
<input type="text" name="autor" value= "<?php echo $row['autor']; ?> "><br>
Categoría:<br>
<input type="text" name="categoria" value= "<?php echo $row['categoria']; ?> "><br>
Escriba el articulo<br>
<textarea name="noticia" cols="50" rows="10"><?php echo $row['noticia']; ?></textarea>
<br>
<input type="submit" value="Editar"><br>
</form>
<?php
}
mysql_free_result($result);
mysql_close($connect);
?>
edit.php
Código PHP:
<?php
$id=$_POST['id'];
$titulo=$_POST['titulo'];
$autor=$_POST['autor'];
$categoria=$_POST['categoria'];
$noticia=$_POST['noticia'];
$link = mysql_connect("localhost", "usuario" , "password");
mysql_select_db("tu_base_de_datos",$link);
$sql = "UPDATE noticias SET id_noticia='$id', titulo='$titulo', autor='$autor', noticia='$noticia', categoria='$categoria' WHERE id_noticia=$id";
$result = mysql_query($sql, $link) or die("Error en consulta $sql:".mysql_error() );
header("location: index.php");
?>
ver.php
Código PHP:
<?php
$id=$_GET["id"];
$connect = mysql_connect("localhost","usuario","password");
mysql_select_db("tu_base_de_datos,$connect);
$result=mysql_query("select * from noticias where id_noticia='$id'",$connect);
while($row=mysql_fetch_array($result))
{
$result2=mysql_query("select * from comentarios where id='$id'",$connect);
$totalcomentarios=mysql_num_rows($result2);
echo '<h3>'.$row[titulo].'</h3>
'.$row[articulo].'<br>
'.$row[autor].' | '.$row[categoria].' | '.$row[fecha].' <br>'.$row[noticia].'
<br><b>comentarios('.$totalcomentarios.')</b><br>
<a href="editar.php?id='.$row[id].'">editar</a> | <a href="borrar.php?id='.$row[id].'">borrar</a>';
}
mysql_free_result($result)
?>
<br><br><br><br>
<?php
echo '<h2>Comentarios:</h2><br>';
//hago el llamado a la base
$result=mysql_query("select * from comentarios where id='$id'",$connect);
//Bucle while para visualizarlos
while($row=mysql_fetch_array($result))
{
echo '<h4>Nick: '.$row[nick].':</h4>Email: '.$row[email].'<br>Comentario: '.$row[comentario].'<br><br>';
}
mysql_free_result($result)
?>
<form action="editacomentarios.php" method="post">
<input type="hidden" name="id" value="<?php echo $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>
editacomentarios.php
Código PHP:
<?php
$id=$_POST['id'];
$nick=$_POST['nick'];
$email=$_POST['email'];
$comentario=$_POST['comentario'];
//conecto a la base
$connect=mysql_connect("localhost","usuario","password"); // se conecta con la db
//Seleccionamos la base
mysql_select_db("tu_base_de_datos",$connect);
$query = "INSERT INTO comentarios (id,nick,email,comentario) VALUES('$id','$nick','$email','$comentario')";
mysql_query($query) or die(mysql_error());
header("location: ver.php?id=$_POST[id]")
?>
Bueno esto es lo más básico del mundo, simplemente he corregido el código que estaba en las webs que antes nombré, ahora esta en tu mano hacer el borrar.php o meterle estilos con css, html...
Saludos!!