Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Notificaciones de mensajes

Hola como estan? jeje seguimos mejorando y aprendiendo.

saben vengo por aqui en busca de..

tengo este script
<?php require_once('/Connections/config.php'); 
 if (!isset($_SESSION['MM_id'])){
	
    header("Location: " . $urlweb );

	}
///////////////////////// SABER MENSAJES ///////////////////////////////////////////////////////////////////////////////
$colname_sacarmensajes = "-1";
if (isset($_SESSION['MM_id'])) {
  $colname_sacarmensajes = $_SESSION['MM_id'];
}
mysql_select_db($database_config, $config);
$query_sacarmensajes = sprintf("SELECT * FROM hs_mensajes WHERE recibe= %s ORDER BY id DESC", GetSQLValueString($colname_sacarmensajes, "int"));
$sacarmensajes = mysql_query($query_sacarmensajes, $config) or die(mysql_error());
$row_sacarmensajes = mysql_fetch_assoc($sacarmensajes);
$totalRows_sacarmensajes = mysql_num_rows($sacarmensajes);


	   $updateSQL = sprintf("UPDATE hs_mensajes SET estado=1  WHERE recibe=%s", 
	   GetSQLValueString ($_SESSION['MM_id'], "int"));	
	
	 mysql_select_db($database_config, $config);
     $Result1 = mysql_query($updateSQL, $config) or die(mysql_error());
///////////////////////////////// FIN /////////////////////////////////////////////////////////////////////////////////	
?>
<div class="contenedor">
		  <h2 style="color:#069"><strong>Mensajes Recibidos</strong></h2>
        <?php if ($row_sacarmensajes['mensaje']=="") echo "<div class='noanuncios'>Sin mensajes recibidos...</div>";
		   else { ?>      
        <div id="fav"><strong>Mensaje :</strong> <a href="responder_mensaje.php"><?php echo $row_sacarmensajes['mensaje']; ?></a> <br>
        <strong>Fecha :</strong> <?php echo tiempo_transcurrido ($row_sacarmensajes['fecha']); ?> <br>
        <strong>Por Asunto : </strong><?php echo $row_sacarmensajes['asunto']; ?> <strong><br>
        Usuario : </strong><?php echo user($row_sacarmensajes['recibe']); ?> <br>
         <a href="<?php echo $urlweb ?>borrar_preg_realizada.php?id=<?php echo $row_sacarmensajes['id']; ?>">Borrar</a><br>
        </div>
        <?php }?>
         <br>
  <p><strong><a href="mensajes_enviados.php">Ver mensajes Enviados</a></strong></p>
</div>
<?php
mysql_free_result($sacarmensajes);
?>
que vendria a ser la parte donde me notifica de recibir el mensaje y todo anda perfecto, hasta el update y todo.

pero cual es el problema te preguntaras entonces?? pues bien el problea es que en la barra de notificaciones me aparece la cantidad de mensajes recibidos por ejemplo " 10" no? pero aqui esta el error.

yo leo un solo mensaje y ya toma que los hubiera leido todos, osea se pone en cero la notificacion, cuando aun quedan 9 mensajes por leer??

si alguien entiende y me da una manito.. luego dejo todo el codigo como ayuda para los amigos que estan aprendiendo como yo jejeje..

pd: lo podra hacer con ajax????
gracias



0
Puntos
1657
Visitas
7
Resp
Por fernandoury hace 94 meses
Principiante Sitio web
Respuesta #1
claro por que cuando entras a la lista se hace el update y cambian a leídos, si quieres hacerlo 1 x 1 tienes que poner el update en la pagina donde lees el mensaje completo, no recuerdo el código de esa pagina si lo agregas a este hilo te digo como ;)

salu2
0
Puntos
Por alber hace 94 meses
Administrador
Respuesta #2
si tengo el update en la pagina para leer el mensaje pero igual pasa
0
Puntos
Por fernandoury hace 94 meses
Principiante Sitio web
Respuesta #3
Hasta que no lo quites de la pagina que lista todos los mensajes te seguira pasando

Ademas en la pagina donde los lees el update cambia un poco por eso te decia de ver el codigo

;)
0
Puntos
Por alber hace 94 meses
Administrador
Respuesta #4
Hola Alber, mira te paso los script :

este es donde llegan todos los mensajes :
<?php require_once('/Connections/config.php'); 
 if (!isset($_SESSION['MM_id'])){
	
    header("Location: " . $urlweb );

	}
///////////////////////// SABER MENSAJES ///////////////////////////////////////////////////////////////////////////////
$colname_sacarmensajes = "-1";
if (isset($_SESSION['MM_id'])) {
  $colname_sacarmensajes = $_SESSION['MM_id'];
}
mysql_select_db($database_config, $config);
$query_sacarmensajes = sprintf("SELECT * FROM hs_mensajes WHERE recibe= %s ORDER BY id DESC", GetSQLValueString($colname_sacarmensajes, "int"));
$sacarmensajes = mysql_query($query_sacarmensajes, $config) or die(mysql_error());
$row_sacarmensajes = mysql_fetch_assoc($sacarmensajes);
$totalRows_sacarmensajes = mysql_num_rows($sacarmensajes);
///////////////////////////////// FIN /////////////////////////////////////////////////////////////////////////////////	
?>
<div class="contenedor">
		  <h2 style="color:#069"><strong>Mensajes Recibidos</strong></h2>
        <?php do { ?>
        <?php if ($row_sacarmensajes['mensaje']=='') echo "<div class='noanuncios'>Sin mensajes recibidos...</div>";
		   else { ?>      
        <div id="fav"><strong>Mensaje :</strong> <a href="responder_mensaje.php?id=<?php echo $row_sacarmensajes['id']; ?>"><?php echo $row_sacarmensajes['mensaje']; ?></a> <br>
        <strong>Fecha :</strong> <?php echo tiempo_transcurrido ($row_sacarmensajes['fecha']); ?> <br>
        <strong>Por Asunto : </strong><?php echo $row_sacarmensajes['asunto']; ?> <strong><br>
        Usuario : </strong><?php echo user($row_sacarmensajes['recibe']); ?> <br>
         <a href="<?php echo $urlweb ?>borrar_preg_realizada.php?id=<?php echo $row_sacarmensajes['id']; ?>">Borrar</a></div>
        <?php }?>
        <?php } while ($row_sacarmensajes = mysql_fetch_assoc($sacarmensajes)); ?>
         <br>
<strong><a href="mensajes_enviados.php">Ver mensajes Enviados</a></strong></div>
<?php
mysql_free_result($sacarmensajes);
?>

Y este donde los leo :
<?php require_once('/Connections/config.php'); 
 if (!isset($_SESSION['MM_id'])){
	
    header("Location: " . $urlweb );

	}
///////////////////////// SABER MENSAJES ///////////////////////////////////////////////////////////////////////////////
$mensaje_ver=$_GET['id'];

mysql_select_db($database_config, $config);
$query_sacarmensajes = sprintf("SELECT * FROM hs_mensajes WHERE id= %s ", 
GetSQLValueString($mensaje_ver, "int"));
$sacarmensajes = mysql_query($query_sacarmensajes, $config) or die(mysql_error());
$row_sacarmensajes = mysql_fetch_assoc($sacarmensajes);
$totalRows_sacarmensajes = mysql_num_rows($sacarmensajes);


	   $updateSQL = sprintf("UPDATE hs_mensajes SET estado=1  WHERE recibe=%s", 
	   GetSQLValueString ($_SESSION['MM_id'], "int"));	
	
	 mysql_select_db($database_config, $config);
     $Result1 = mysql_query($updateSQL, $config) or die(mysql_error());
///////////////////////////////// FIN /////////////////////////////////////////////////////////////////////////////////	
?>
<div class="contenedor">
		  <h2 style="color:#069"><strong>Ver y reponder mensajes </strong>recibido</h2>
        <?php if ($row_sacarmensajes['mensaje']=="") echo "<div class='noanuncios'>Sin mensajes recibidos...</div>";
		   else { ?>      
        <div id="fav"><strong>Mensaje :</strong> <a href="responder_mensaje.php"><?php echo $row_sacarmensajes['mensaje']; ?></a> <br>
        <strong>Fecha :</strong> <?php echo tiempo_transcurrido ($row_sacarmensajes['fecha']); ?> <br>
        <strong>Por Asunto : </strong><?php echo $row_sacarmensajes['asunto']; ?> <strong><br>
        Usuario : </strong><?php echo user($row_sacarmensajes['recibe']); ?> <br>
         <li style="list-style:none">
          <span class="editar cursor"><a href="<?php echo $urlweb ?>borrar_preg_realizada.php?id=<?php echo $row_sacarmensajes['id']; ?>">Borrar</a>
         <a onClick="Usuario();"> ( Responder )</a></span><br>
          </li>
          <div id="Usuario" style='display:none;'>
                   <form method="post" name="form1" action="<?php echo $urlweb ?>inc/usuario.php">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">Usuario:</td>
      <td><input type="text" name="hs_user" value="<?php echo htmlentities($row_sacardatosmiperfil['hs_user'], ENT_COMPAT, ''); ?>" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input type="submit" value="Actualizar" id="botton"></td>
    </tr>
  </table>
  <input type="hidden" name="MM_update" value="form1">
  <input type="hidden" name="id" value="<?php echo $row_sacardatosmiperfil['id']; ?>" onclick="ocultar()">
</form></div>
        </div>
        <?php }?>
         <br>
  <p><strong><a href="mensajes_enviados.php">Ver mensajes Enviados</a></strong></p>
</div>
<?php
mysql_free_result($sacarmensajes);
?>
En este ultimo es donde tengo el update jeje
0
Puntos
Por fernandoury hace 94 meses
Principiante Sitio web
Respuesta #5
Donde los lees cambia esto
UPDATE hs_mensajes SET estado=1  WHERE recibe=%s
por esto
UPDATE hs_mensajes SET estado=1  WHERE recibe=%s AND id=$mensaje_ver
estoy desde el movil y no te puedo explicar mejor pero basicamente es lo que tienes que hacer

Salu2
0
Puntos
Por alber hace 94 meses
Administrador
Respuesta #6
sos un genio quedo!!! una ultima jeje viste cuando notifica? siempre queda en uno no ?
0
Puntos
Por fernandoury hace 94 meses
Principiante Sitio web
Respuesta #7
Xd que yo sepa llega a +9 simplemente es sacando el $total_rowxxx en el curso se explica muchas veces como sacar las cantidad de registros obtenidos de una consulta en tu caso la consulta es a notificaciones y a mensajes (creo)

Ve probando y nos cuentas salu2
0
Puntos
Por alber hace 94 meses
Administrador
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate