Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Mostrar anterior/siguiente en consulta MySQL

Estas en el tema de Mostrar anterior/siguiente en consulta MySQL en el foro de Mysql en Foros del Web. Buenos dias. Quiero hacer una cosa pero la verdad es que no se cómo. Vereis, tengo en mi web una consulta en la base de ...
  #1 (permalink)  
Antiguo 05/12/2012, 03:05
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 9 meses
Puntos: 2
Mostrar anterior/siguiente en consulta MySQL

Buenos dias.

Quiero hacer una cosa pero la verdad es que no se cómo.

Vereis, tengo en mi web una consulta en la base de datos que te devuelve en forma de lista, los usuarios que hay en la web (puedes filtrarlo por categorías y alguna cosa mas)

A su vez, en ese listado, puedes entrar en el perfil de cada usuario y ver si info.

Lo que quiero es que una vez dentro del perfil del usuario, para cambiar a otro perfil, no tenga que volver a la lista de usuarios, sino que pueda ir al perfil Anterior y al Siguiente.

Lo que no se es cómo hacer una consulta en MySQL y decir... el perfil actual es el numero 15, el perfil anterior de la consulta es 14, el siguiente, 16, para poder así enlazarlos.

¿Alguna idea?

PD: Se me olvidó mencionar que estuve investigando y no se si la función mysql_data_seek me puede servir de algo http://php.net/manual/es/function.mysql-data-seek.php

Última edición por jonasgv; 05/12/2012 a las 03:27
  #2 (permalink)  
Antiguo 05/12/2012, 03:49
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Mostrar anterior/siguiente en consulta MySQL

Lo mejor, por temas de eficiencia, es que lo resuelvas en el programa y no en la base de datos, esto es, que te lleves todos los perfiles y vayas recorriendo la estructura donde los guardes.

De todas formas, si te empeñas en resolverlo por base de datos (ya te digo que no te lo recomiendo) puedes añadir el número de columna cuando hagas tu select (ordenando siempre por los mismos criterios) y luego basarte en ese campo para ir buscando uno u otro.
  #3 (permalink)  
Antiguo 05/12/2012, 07:05
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Mostrar anterior/siguiente en consulta MySQL

Una opción podría ser:
Código MySQL:
Ver original
  1. SELECT ... FROM usuario WHERE id > id_actual ORDER BY id LIMIT 1 #siguiente
  2. SELECT ... FROM usuario WHERE id < id_actual ORDER BY id DESC LIMIT 1 #anterior
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 05/12/2012, 12:57
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: Mostrar anterior/siguiente en consulta MySQL

Cita:
Iniciado por Heimish2000 Ver Mensaje
Lo mejor, por temas de eficiencia, es que lo resuelvas en el programa y no en la base de datos, esto es, que te lleves todos los perfiles y vayas recorriendo la estructura donde los guardes.

De todas formas, si te empeñas en resolverlo por base de datos (ya te digo que no te lo recomiendo) puedes añadir el número de columna cuando hagas tu select (ordenando siempre por los mismos criterios) y luego basarte en ese campo para ir buscando uno u otro.
¿Y cómo lo resuelvo en el programa? Es que no entiendo a qué te refieres y si dices que es mejor, me gustaría saber cómo se hace.
  #5 (permalink)  
Antiguo 05/12/2012, 12:58
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: Mostrar anterior/siguiente en consulta MySQL

Cita:
Iniciado por David Ver Mensaje
Una opción podría ser:
Código MySQL:
Ver original
  1. SELECT ... FROM usuario WHERE id > id_actual ORDER BY id LIMIT 1 #siguiente
  2. SELECT ... FROM usuario WHERE id < id_actual ORDER BY id DESC LIMIT 1 #anterior
El problema que le veo a eso es que el listado de usuarios no va ordenado según su id, sino por otros criterios (que tengan ciertas caracteristicas, que sean de cierto lugar,...)
  #6 (permalink)  
Antiguo 05/12/2012, 13:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Mostrar anterior/siguiente en consulta MySQL

Entiendo, igual puedes hacer la consulta con los mismos criterios que utilizaste para la lista. De todos modos, en ese caso sí conviene (ya que la consulta ya se hizo en la página anterior) usar esos datos ya obtenidos para pasar a la siguiente página (la que muestra el perfil de usuario) el id del resultado siguiente y anterior.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 07/12/2012, 02:02
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Mostrar anterior/siguiente en consulta MySQL

Cita:
Iniciado por jonasgv Ver Mensaje
¿Y cómo lo resuelvo en el programa? Es que no entiendo a qué te refieres y si dices que es mejor, me gustaría saber cómo se hace.
Supongo que todo esto lo quieres para un programa que estes desarrollando, ¿no? Si no, ¿Dónde van a estar los botones de anterior y siguiente?
  #8 (permalink)  
Antiguo 07/12/2012, 06:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Mostrar anterior/siguiente en consulta MySQL

Programación no es tema de este foro. Si quiere tratar los detalles ce la aplicación, te paso el post al Foro correspondiente. ¿En que lenguaje trabajas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 09/12/2012, 13:35
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: Mostrar anterior/siguiente en consulta MySQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Programación no es tema de este foro. Si quiere tratar los detalles ce la aplicación, te paso el post al Foro correspondiente. ¿En que lenguaje trabajas?
Estoy con consultas de MySQL y PHP

De todos modos, digamos que el problema aquí es cómo hago la consulta de la base de datos para saber en una "lista" de resultados de una consulta, que fila es la actual que estoy viendo, cual es la fila anterior y cual la posterior.

Última edición por jonasgv; 10/12/2012 a las 02:03

Etiquetas: sql
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 20:44.