Foros del Web » Programando para Internet » PHP »

Al siguiente registro

Estas en el tema de Al siguiente registro en el foro de PHP en Foros del Web. Tengo un sistema de mensajeria donde los usuarios pueden enviar, recibir y borrar mensajes. En la bandeja de entrada aparecen todos los mensajes que recibe ...
  #1 (permalink)  
Antiguo 12/04/2004, 10:47
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 9 meses
Puntos: 0
Al siguiente registro

Tengo un sistema de mensajeria donde los usuarios pueden enviar, recibir y borrar mensajes.
En la bandeja de entrada aparecen todos los mensajes que recibe cada usuario y cuando le das a alguno te lleva a otra pagina donde te muestra el contenido de tal mensaje.
Pues bien, en esa pagina me he dispuesto a poner dos flechas, una para pasar al mensaje anterior y otra para el siguiente.
Despues de un rato (soy novatillo) consegui que funcionara pero se me olvido un "pequeño" detalle y es que como los usuarios pueden borrar mensajes conlleva que borren la id de dichos mensajes borrados. Yo tenia este codigo puesto:
<? $idss = $id-1;
$result = mysql_query("SELECT * FROM mensajes where msgid = '$idss' AND para = '$nickUsuarioL'", $db2);
$registro = mysql_fetch_array($result); {
$asunt = $registro["asunto"];
if($asunt==""){ print ""; } else{ print "<a href='leer_privados2.php?id=";?><?=$id-1?><? echo "'><img src='atras.gif' border='0' alt='Mensaje anterior'></a>&nbsp;&nbsp;"; }
}mysql_free_result($result);?>
Haciendo que si el usuario estaba en el mensaje con ID 13 no le apreciece la flecha para ir al 12 (este es el codigo para ir al mensaje anterior, el codigo del mensaje siguiente es el mismo pero con + en vez de -).
Mi problema es que al poder borrar los usuarios sus mensajes, borran tambien las IDs de dichos mensajes y si suprimen el mensaje con ID 12 y el usuario esta en el mensaje con ID 13 no podra llegar al mensaje con ID 11 ya que el 12 no existe por haber sido borrado. Entonces lo que quiero es un codigo que haga que al pulsar en la flecha de mensaje anterior me vaya a la siguiente ID mas baja, o sea que si estoy en 9 y no hay 8 ni 7 que se vaya a la 6... no se si me explico del todo bien... es algo lioso... bueno, si no entendeis algo me lo decis e intento de explicarme mejor. De antemano muchisimas gracias ^^, saludos
  #2 (permalink)  
Antiguo 12/04/2004, 10:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Todo es cuestion de logica. El anterior no es mas que el primero de los registros de ID menor al actual ordenados de mayor a menor:

SELECT * FROM tabla WHERE ID < id_actual ORDER BY ID DESC LIMIT 1

Y el siguiente es el primero de ID mayor ordenado de menor a mayor:

SELECT * FROM tabla WHERE ID > id_actual ORDER BY ID ASC LIMIT 1

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 12/04/2004, 11:07
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 9 meses
Puntos: 0
Muchisimas gracias josemi!! que rapidez jeje ^^ funciona a la perfeccion ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:44.