Hola a todos haber si alguien me puede solucionar el problemilla que tengo.
He creado un sistema noticias, dedes un panel de administracion... un conteo de mensajes para cada noticia, calificacion para cada noticia, etc...
Pero a la hora de mostrar los comentarios de cada usuario todos me aparecen iguales (usuario, permisos, puntos y total de posts)
Como se puede apreciar en la captura, un usuarios es djboro y es ADMIN y otro es paco que es Usuario registrado.
Por lo que se ve el fallo esta en la consulta o en el while...
Solo me carga los datos del último mensaje.
La tabla es la siguiente.
COMENTARIOS
idcomentarios, idnoticias, idusuarios, comentario, fecha
Os dejo el codigo de los ver-noticia.php y comentarios.php:
Código PHP:
<?php
session_start();
include("config.php");
$id = $_GET['id']; //ID DE LA NOTICIA
//CARAGAR DATOS DESDE BD
$sql_ver = mysql_query("SELECT * FROM noticias WHERE idnoticias='$id' ORDER BY fecha DESC");
$noticia = mysql_fetch_array($sql_ver);
//CONTAR TOTAL COMENTARIOS
$sql = "SELECT idcomentarios FROM comentarios WHERE idnoticias='$id'";
$result = mysql_query($sql);
$numero = mysql_num_rows($result);
//DATOS DE LOS COMENTARIOS
$sql_dat_coment = mysql_query("SELECT * FROM comentarios WHERE idnoticias='$id'");
$datos = mysql_fetch_array($sql_dat_coment);
$idusuariocoment = $datos['idusuarios'];
//ID DE USUARIOS
$sql_usuario = mysql_query("SELECT nick, avatar, tpost, puntos, estado FROM usuarios, comentarios, noticias WHERE usuarios.idusuarios=comentarios.idusuarios");
$usuario = mysql_fetch_array($sql_usuario);
$puntos = $usuario['puntos'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN" lang="EN" dir="ltr">
<title>FORMAT HOME: <?php if(!isset($id)){ echo "Todas las Noticias y Novedades";
}else{ echo $noticia['titulo']; } ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link rel="stylesheet" href="styles/layout.css" type="text/css" />
<!-- COMENTARIOS -->
<script type="text/javascript" src="editor/nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() {
new nicEditor({fullPanel : true}).panelInstance('area1');
});
</script>
</head>
<body id="top">
<!-- BIENVENIDO E IDIOMA -->
<?php include('logidioma.php'); ?>
<!-- TITULO -->
<?php include('titulologo.php'); ?>
<!-- MENU SUPERIOR -->
<div class="wrapper col3">
<div id="topnav">
<ul>
<li><a href="index.php">Inicio</a><span>Página Principal</span></li>
<li class="active"><a href='ver-noticia.php'>Noticias</a><span>noticias y novedades</span></li>
<?php if(!isset($_SESSION["nick"])){
echo "<li><a href='conectarse.php'>Conectarse</a><span>Iniciar Sesión</span></li>";
echo "<li><a href='registro.php'>Registrarse</a><span>crear nueva cuenta</span></li>";
} else {
echo "<li><a href='mi-perfil.php'>Mi Perfil</a><span>editar detalles</span></li>";
echo "<li><a href='canjear-puntos.php'>Cajero</a><span>canjea tus puntos</span></li>";
echo "<li><a href='cerrar-sesion.php'>Cerrar Sesión</a><span>desconectarme</span></li>";
}
?>
</ul>
<br class="clear" />
</div>
</div>
<!-- LEER NOTICIA COMPLETA -->
<div class="wrapper col5">
<div id="container">
<div id="content">
<?php if(isset($id)){
echo "";
}else{
//Sentencia sql (sin limit)
$_pagi_sql = "SELECT * FROM noticias ORDER BY fecha DESC";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos = 10;
//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");
echo "<h2>Todas las Noticias y Novedades</h2>";
echo "<table border='0'><tr style='background:#4C4C4E; color:#fff;'>";
echo "<td width='10%' align='center'><b>Imágen</b></td>";
echo "<td width='25%' align='center'><b>Título</b></td>";
echo "<td width='60%' align='center'><b>Descripción</b></td>";
echo "<td width='5%' align='center'><b>Opciones</b></td>";
echo "</tr>";
//Leemos y escribimos los registros de la página actual
while($row = mysql_fetch_array($_pagi_result)){
echo "<tr><td align='center'><img src='".$row['imagen']."' width='45' ></td>";
echo "<td align='center'><p><strong>".$row['titulo']."</p></strong></td>";
echo "<td align='center'><p>".$row['breve']."</p></td>";
echo "<td align='center'><a href='ver-noticia?id=".$row['idnoticias']."'><img src='images/varios/leer.gif' alt='Leer Noticia' title='Leer Noticia'></a></td></tr>";
}
echo "</table>";
//Incluimos la barra de navegación
if ($_pagi_totalPags == '1'){
echo "";
}else{
echo"<p>".$_pagi_navegacion."</p>";
}
}
?>
<h2><?php if(isset($id)) echo $noticia['titulo']; ?></h2>
<table width="100%" border="0">
<tr>
<td rowspan="3" width="5%" style="vertical-align:top;" align="center">
<img src="<?php echo $noticia['imagen']; ?>" width='100' alt="<?php echo $noticia['titulo']; ?>" title="<?php echo $noticia['titulo']; ?>">
<br>
<br>
<?php if(isset($_SESSION["nick"])){
echo "<a href='puntunegativo?noticia=".$noticia['idnoticias']."' target='_blank' onClick=\"window.open(this.href, this.target, 'width=550,height=140'); return false;\"><img src='images/varios/negativo.gif' alt='Voto Negativo' title='Voto Negativo'></a> ";
if($noticia['puntua'] == '0'){
echo "<font size='3' color='#000000'><b>".$noticia['puntua']."</b></font>";
}else if($noticia['puntua'] > '0'){
echo "<font size='3' color='green'><b>".$noticia['puntua']."</b></font>";
}else{
echo "<font size='3' color='#FF0000'><b>".$noticia['puntua']."</b></font>";
}
echo " <a href='puntupositivo?noticia=".$noticia['idnoticias']."' target='_blank' onClick=\"window.open(this.href, this.target, 'width=550,height=140'); return false;\"><img src='images/varios/positivo.gif' alt='Voto Positivo' title='Voto Positivo'></a>";
}
?>
</td>
<td width="65%"><b><?php echo $noticia['breve']; ?></b></td>
<td width="30%" align="right"><?php if(isset($id)) echo "Publicado: ".$noticia['fecha']; ?></td>
</tr>
<tr>
<td colspan="3" style="text-align:justify;"><?php echo $noticia['mensaje']; ?></td>
</tr>
<tr>
<td colspan="2"><?php if(isset($id)) echo "<b><i>Comentarios</i> (".$numero.")</b>"; ?></td>
</tr>
</table>
<!-- SOLO LOS USUARIOS REGISTRADOS PUEDEN COMENTAR -->
<?php
if(isset($id))
if(!isset($_SESSION["nick"])){
echo "<b>Solo los <a href='registro.php'>Usuarios Registrados</a> pueden comentar las noticias.</b>";
echo "<br><br>";
}else{
echo "<h2>Escribir Comentario</h2>";
echo "<form method='POST' action='comentar.php'>";
//CAMPOS OCULTOS
echo "<input type='hidden' id='idnoticia' name='idnoticia' value='".$id."'>";
echo "<input type='hidden' id='tpost' name='tpost' value='".$usuario['tpost']."'>";
echo "<input type='hidden' id='puntos' name='puntos' value='".$usuario['puntos']."'>";
//CAMPO DEL COMENTARIO
echo "<textarea id='area1' name='texto' cols='65' rows='8' style='width:100%;'></textarea>";
echo "<br><div align='right'><input type='submit' name='enviar' id='enviar' value='Enviar Comentario'/></div></form>";
}
?>
<!-- COMENTARIOS -->
<?php include('comentarios.php'); ?>
</div>
<!-- NOTICIAS -->
<?php include('noticias.php'); ?>
<br class="clear" />
</div>
</div>
<!-- FOOTER -->
<?php include('footer.php'); ?>
<!-- COPYRIGHT -->
<?php include('copyright.php'); ?>
</body>
</html>
comentarios.php
Código PHP:
<?php
//Sentencia sql (sin limit)
$_pagi_sql = "SELECT * FROM comentarios WHERE idnoticias='$id' ORDER BY idcomentarios DESC";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos = 5;
//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");
//Leemos y escribimos los registros de la página actual
if(isset($id))
if ($datos['idcomentarios'] == NULL OR ''){
echo "<h2>No hay comentarios</h2>";
}else{
echo "<a name='nuevo' style='color:#666666;'><h2>Comentarios</H2></a>";
}
while($datos = mysql_fetch_array($_pagi_result)){
echo "<table width='100%' style='border: 1px solid' cellpadding='0' cellspacing='0'>";
echo "<tr style='background:#4C4C4E; color:#fff;'>";
echo "<td width='12%' align='center'>".$usuario['nick']."</td>";
echo "<td width='40%'>";
switch ($usuario['estado']) {
case '1':
echo "<b>Usuario Registrado</b>";
case '9':
echo "<font color='#FF3F4C'><b>Administrador</b></font color>";
}
echo "</td>";
echo "<td width='18%'>Posts: ".$usuario['tpost']."</td>";
echo "<td width='18%'>Puntos: ".$usuario['puntos']."</td>";
echo "</tr>";
echo "<tr>";
echo "<td width='12%' rowspan='2' style=vertical-align:top;'><img src='".$usuario['avatar']."' width='80'></td>";
echo "<td style='text-align:justify;' colspan='3'>".$datos['comentario']."</td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='3' align='right'>Publicado: ".$datos['fecha']."</td>";
echo "</tr>";
echo "</table>";
}
//Incluimos la barra de navegación siempre y cuando tenga como mínimo la cantida deseada.
if ($_pagi_totalPags == '1'){
echo "";
}else{
echo"<p>".$_pagi_navegacion."</p>";
}
?>
Espero vuestras soluciones...