Foros del Web » Programando para Internet » PHP »

Comando para volver atras con MySQL

Estas en el tema de Comando para volver atras con MySQL en el foro de PHP en Foros del Web. Tengo una barra de herramientas, y quiero que un botón tenga la acción de volver atras (registro anterior) en la tabla de MySQL que corresponda ...
  #1 (permalink)  
Antiguo 29/01/2004, 07:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 14 años, 1 mes
Puntos: 0
Comando para volver atras con MySQL

Tengo una barra de herramientas, y quiero que un botón tenga la acción de volver atras (registro anterior) en la tabla de MySQL que corresponda a ese formulario, hay algun comando en PHP que lo haga sobre MySQL o alguna forma de hacerlo

Gracias de antemano
  #2 (permalink)  
Antiguo 29/01/2004, 08:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Depende de como se defina "registro anterior". Si el registro anterior es el que tiene un id menor, puedes montar una consulta con:

SELECT * FROM TABLA WHERE id<$id ORDER BY id DESC LIMIT 1

Es decir, de los que tienen el id menor, los ordenas de mayor a menor, y solo coges el primero.

$id se lo pasarias a la pagina y seria el id del registro del cual quieres obtener el anterior.

Para el siguiente seria parecido:

SELECT * FROM TABLA WHERE id>$id ORDER BY id ASC LIMIT 1

Si usas otro sistema de ordenamiento, tendrias que montar consultas parecidas.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 29/01/2004, 09:04
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Una cosita .... yo recomendaria hacer uso de SELECT campo1, campo2, .... es decir, evitar el * y sustituirlo por los nombres de los campos, ya que de esa manera es mas standard. El * que se usa mucho en las consultas es solo valido para el motor de bases de datos MySQL, por eso es mejor hacer consultas standard por si algun dia tienes que migrar de servidor de BBDD :P jeje es solo un comentario y una recomendacion
__________________
Usuario registrado de Linux #288725
  #4 (permalink)  
Antiguo 29/01/2004, 09:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bueno, ahora mismo no se si * corresponde a un standard SQL. Se que funciona en varios motores (si es que a M$Access se le puede llamar motor, bueno, seria jet).

Aparte de que sea mas o menos standard, tambien esta la "optimizacion" de memoria. Imagino que la consulta de 800 registros de 12 campos ocupa mas que la misma consulta de 800 registros, pero de 2 campos (siempre que solo necesites esos 2 campos).

De todas formas, las consultas que ponia en mi respuesta eran para que viese la estructura del WHERE y del ORDER BY.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 29/01/2004, 09:15
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
jeje perfecto simplemente era por puntualizar algo mas y como bien has dicho si tienes una consulta de 800 registros con 12 campos y solo necesitas 2, pues olo indicas esos dos ;) jeje
__________________
Usuario registrado de Linux #288725
  #6 (permalink)  
Antiguo 29/01/2004, 11:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 32
Antigüedad: 14 años, 1 mes
Puntos: 0
No es el anterior

Me refiero exactamente al registro anterior que puede ser o no el id anterior ya que si hay registros borrados entre medio, puede que yo quiera el anterior al 100 que puede ser el 96 porque los demás id situados enmedio esten borrados.

No se si se puede.

Un saludo
  #7 (permalink)  
Antiguo 29/01/2004, 11:22
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Pues es eso exactamente lo que hace esa consulta. Coge el mayor de los ids menores del que pasas. Pruebalo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 29/01/2004, 12:11
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
eso es, como bien dice josemi, en el caso del anterior seria id < $id usea jeje el menor y para el siguiente pos mayor , para que fuera el sigiente seria id+1 y el anterior id-1
__________________
Usuario registrado de Linux #288725
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 10:38.