Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/12/2009, 06:16
Avatar de breakervans
breakervans
 
Fecha de Ingreso: noviembre-2009
Ubicación: Vigo, España
Mensajes: 133
Antigüedad: 14 años, 6 meses
Puntos: 1
Mensajes nuevos

Hola, estoy con el sistema de mensajería interna en mi web y me encuentro con un problema a la hora de mostrar la notificación en la página principal del usuario que dice 'tienes x mensajes nuevos'. No se por qué solo funciona a veces, cuando le viene en gana, sino se queda poniendo lo mismo que puede ser 'tienes 1 mensaje nuevo' aunque lo hayas borrado o tengas 40 nuevos. Y es un código que copié de un aporte en esta web. Os paso los códigos de la tabla de MySQL y ese código php.

Código PHP:
<?php

$i 
1;
$nuevos 0;
include(
"conexion.php");

$query mysql_query ("SELECT * FROM mensajes order by fecha DESC");

while ( 
$row mysql_fetch_array($query) ) {

    if ( 
$row['para'] == $username ) {

if ( 
$row[leido] < ) {
    
$nuevos $nuevos +1;
}

if ( 
$row[leido] < ) {
    
$mensajesnuevos .= "</B>";
}

    
$tiene "Si";
    
$i $i+1;
    }


}

if ( 
$nuevos == ) {
$nuevos "Ninguno";
}
    if ( 
$tiene != "Si" ) {

    echo 
"<font size=1 face=Tahoma>No tienes mensajes, $username";

    }
    else {
    
$j $i -1;
    echo 
"<font size=1 face=Tahoma>Tienes <b>$j</b> mensajes.<br><B>$nuevos</b> son nuevos.";
Código:
CREATE TABLE `mensajes` (
  `msgid` int(9) NOT NULL AUTO_INCREMENT,
  `de` char(255) NOT NULL,
  `para` char(255) NOT NULL,
  `asunto` char(255) NOT NULL,
  `mensaje` longtext NOT NULL,
  `fecha` char(255) NOT NULL,
  `leido` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`msgid`)
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;