Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2008, 14:50
Avatar de karlic0s
karlic0s
 
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
[APORTE] Sistema de noticias y comentarios

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!!