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] < 1 ) {
$nuevos = $nuevos +1;
}
if ( $row[leido] < 1 ) {
$mensajesnuevos .= "</B>";
}
$tiene = "Si";
$i = $i+1;
}
}
if ( $nuevos == 0 ) {
$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 ;