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

dudas al condicionar mysql por el id

Estas en el tema de dudas al condicionar mysql por el id en el foro de Mysql en Foros del Web. hola: primero pido perdon porque hise este post en otra seccion y me di cuenta del error y ahora lo vuelvo a postear aqui que ...
  #1 (permalink)  
Antiguo 02/07/2011, 10:41
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 15 años, 6 meses
Puntos: 5
dudas al condicionar mysql por el id

hola:
primero pido perdon porque hise este post en otra seccion y me di cuenta del error y ahora lo vuelvo a postear aqui que es el lugar correcto.

les cuento mi problemita que seguro es facil de resolver pero yo no veo como XD !
en mi base de datos guardo direcciones de fotos con un id, el ide lo genera mysql con auto_incremet.
mi problema es que cuando estoy en la galeria de fotos selecciono una foto para ver y tengo las siguientes dudas:

1° como hacer se fije si la foto que estoy mirando es la primera o la ultima o esta en el medio respecto del id (teniendo en cuenta que puede haber saltos).

de esta manera si es primero le pongo un boton siguiente si es ultima un anterior y si esta en el medio le pongo los dos botones.

2° la otra duda es como recuperar la proxima o anterior id ya que como aclare en el punto anterior los id pueden dar saltos.

por ejemplo.

un id puede ser
102
y el siguiente puede ser 105

esto se debe a que pueden haber eliminado fotos del album y se elimina el id de la foto correspondiente dejando el salto entre 102 y 105 claro en este ejemplo borrarian el 103 y 104.

bueno espero que me allan comprendido jajaja XD !! saludo. y gracias
__________________
un saludo..... . . .
  #2 (permalink)  
Antiguo 02/07/2011, 14:23
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: dudas al condicionar mysql por el id

1° como hacer se fije si la foto que estoy mirando es la primera o la ultima o esta en el medio respecto del id (teniendo en cuenta que puede haber saltos).

de esta manera si es primero le pongo un boton siguiente si es ultima un anterior y si esta en el medio le pongo los dos botones.

2° la otra duda es como recuperar la proxima o anterior id ya que como aclare en el punto anterior los id pueden dar saltos.


Para ambos casos: no uses el autoincrement del gestor(mysql)
Crea el autoincremento con programacion..Como?
antes de insertar:
haces el query, cuentas las filas y le agregas 1, de esta forma nunca vas a tener saltos....
  #3 (permalink)  
Antiguo 02/07/2011, 14:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: dudas al condicionar mysql por el id

Eso tendría el problema de que generaría duplicaciones de clave si ese valor se usa como PK de la tabla. Y encima serían falsas duplicaciones, porque en realidad se refiere a objetos diferentes.
El tema tiene dos formas de solucionarse de un modo simple:

1) La foro tiene que tener una PK de al menos dos campos, el primero que la vincule con el elemento que se lista, como sería el caso de las fotos de un mismo usuario, y otro que mantenga el número secuencial de foto del usuario. En ese caso sólo necesitas saber cuál es el valor máximo y mínimo del segundo ID agrupando por usuario, para saber si ese sub_id está antes o después de otro.

2) Manejarlo directamente en la tabla resultado de la consulta, la cual puedes (con variables de usuario), numerar temporalmente de otra forma, al mismo tiempo que la ordenas por usuario y por id de foto.

A tener en cuenta: Una parte importante de esto se maneja no en la base sino en la aplicación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 02/07/2011, 17:16
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: dudas al condicionar mysql por el id

para oscarbt:
me parese que no entendiste los saltos.
se producen al eliminar elementos, ya se como generar id programando, pero estoy en la misma. si meto 5 fotos:
1
2
3
4
5 y despues elimino la numero 2 y 4 me sigue quedando.
1
3
5 teniendo saltos a menos que cada ves que borre una foto el script se encargue de modificar el id a todas para eliminar los saltos (lo cual me parese un bardo, y mucho script puede volver muy lento la aplicacion)

para gnzsoloyo:
no tengo diferentes usuarios ni nada es un simple panel de control donde una persona que no tiene idea de programacion puede agregar o sacar o modifciar albums de fotos de su sitio web privado. no es un foro ni nada.
no llegue a entender las soluciones que me diste, no veo para que tener 2 IDs ya que en ninguna manera puedo evitar saltos.

yo en realidad queria saber si hay alguna secuencia mysql que buscara el proximo id, lo cual me pareceria raro que no existiera y estoy casi seguro que debe existir.
algo del estilo search next id. o where id < 'condicion' (para saber si es el mas chico o no)
bueno capas que gnzsoloyo me dio la solucion pero la verdad no te entendi lo que querias lograr XD !
saludos y muchisimas gracias
__________________
un saludo..... . . .
  #5 (permalink)  
Antiguo 02/07/2011, 17:37
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: dudas al condicionar mysql por el id

aaaa es que al eliminar, debes actualizar todos lo que esten por encima......desde ahi controlas el orden......
  #6 (permalink)  
Antiguo 02/07/2011, 18:05
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: dudas al condicionar mysql por el id

jaja ahora entendiste, pero actualizar los id cada ves que eliminas es muy lerdo para el algoritmo.
o sea con un loop elimino y dentro de cada vuelta del loop tendria que poner otro loop que se encargue de vajarle 1 a cada id desde el punto del archivo eliminado.

por un lado igual me di cuenta que poniendo < en la consulta en ves de = te dise si es o no el primero o el ultimo XD !! (me siento ridiculo viendo que era tan sencillo jajaja) por otro lado estoy viendo que voy a generar un limit de 3 uno antes el actual y el que le sigue al archivo de esa manera recupero el id que sigue y el anterior sin importar si hay un salto y ya lo tengo acumulado en la aplicacion XD !.
es algo simple pero se me tenia que ocurrir nomas jajaja lo dejo posteado por si alguien se encuentra con el mismo error, es facil de resolver.
saludor y gracias !!
__________________
un saludo..... . . .

Etiquetas: dudas
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 09:25.