Foros del Web » Programando para Internet » PHP »

Paginar los ides de db si son numeros muy diferentes

Estas en el tema de Paginar los ides de db si son numeros muy diferentes en el foro de PHP en Foros del Web. Paginar los ides de db si son numeros muy diferentes bien los tengo a lo loco los ids ya que es una consulta de errores ...
  #1 (permalink)  
Antiguo 18/05/2011, 16:52
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 78
Antigüedad: 13 años
Puntos: 3
Pregunta Paginar los ides de db si son numeros muy diferentes

Paginar los ides de db si son numeros muy diferentes

bien los tengo a lo loco los ids ya que es una consulta de errores


id 1568

el anterior es 456

y le sigue 34

etc .. todos aleatorios en numero


como puedo pasar anterior y siguiente si con el id que tengo no puedo pasar pagina

con +1 no puedo porque seria 1569 y no existe y menos tampoco por que no existe

seria alguna forma de ir pasando esos ids sin seguir la secuencia


AYUDA POR FAVOR ES URGENTE
  #2 (permalink)  
Antiguo 18/05/2011, 18:01
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Paginar los ides de db si son numeros muy diferentes

en si la paginacion no es tanto de que mandes el id sino la pagina segun la cantidad de resultados por pagina

http://www.desarrolloweb.com/buscar....web.com%2F#928
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #3 (permalink)  
Antiguo 18/05/2011, 18:19
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Paginar los ides de db si son numeros muy diferentes

Cómo extraes los datos de la db? Debes postear tu código para ver si tienes algún error...

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #4 (permalink)  
Antiguo 19/05/2011, 13:58
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 78
Antigüedad: 13 años
Puntos: 3
Respuesta: Paginar los ides de db si son numeros muy diferentes

no sabes lo que digo mogurbon,eso de paginacion por cantidad de resultados a mostrar no es mi caso


estamos hablando de paginar un id a otro id total mente distinto sin secuencia de +1 o -1 entiendes lo que digo


debe aber algun metodo para paginar ids diferentes mostrando un solo campo de la tabla

para que lo entiendas mejor mogurbon

> Sourcegeek

no necesitas codigo para mostrar 1 registro en patalla y los demas cambiarles los ids a lo loco 5567 23 5456 745 etc... y ver como lo paginas y despues del otro que es lo que busco.
  #5 (permalink)  
Antiguo 19/05/2011, 17:12
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Paginar los ides de db si son numeros muy diferentes

Sigo sin entender claramente. A lo que pude entender, quieres usar ID's aleatorios?
Si es así, es fácil, por qué no usas rand() ? De ahí lo ajustas a tu código actual.

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 19/05/2011, 17:17
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 78
Antigüedad: 13 años
Puntos: 3
Respuesta: Paginar los ides de db si son numeros muy diferentes

no hombre mas facil imposible de entender quiero pasar de un id a otro dandole al boton siguiente

el problema es que los numeros son diferentes

como un albun de fotografias.
  #7 (permalink)  
Antiguo 19/05/2011, 17:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Paginar los ides de db si son numeros muy diferentes

La idea no es pasar los IDs, sino las paginas.

Recuerdo un tema donde GatorV menciono que puedes pasar una semilla a RAND() para conservar cierto tipo de aleatoridad.

Entonces esa es la clave, no hay que pensar en el ID, ni incrementarlo, operarlo, nada. Hay que pensar en la cantidad de paginas de resultados, y navegar a través de ellas.

De ahí viene el término de paginación.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 19/05/2011, 19:03
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 78
Antigüedad: 13 años
Puntos: 3
Respuesta: Paginar los ides de db si son numeros muy diferentes

Cita:
Escuchate Maestro :
Cita:
Hay que pensar en la cantidad de paginas de resultados, y navegar a través de ellas.
Es solo un registro tras otro no vario en una misma pagina,

ya dije antes como :

una galeria de fotos con esos ids sin secuencia alguna

Entonces sugieres hacer un rand de los que extraigo de el query y si if get lo que sea me mande un id aleatorio .... uyhmmm eso puede ser una posibiblidad


Pero es la unica forma o es otra la correcta? por que dudo de esta teoria gracias maestro.
  #9 (permalink)  
Antiguo 19/05/2011, 19:15
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Paginar los ides de db si son numeros muy diferentes

Si dices que es un solo registro, no necesitas hacer tanto, basta con algo así:
Código PHP:
<?php
$v 
rand(0,9999); //Dependiendo del n. máximo de ID's posibles
$query mysql_query("SELECT * FROM tutabla WHERE id='$v'");
$assoc mysql_fetch_assoc($query);
echo 
"Imagen: <img src=\"{$assoc["url"]}\" alt=\"Imagen\" />";
?>
Claro, es simplemente un ejemplo. De ahi te puedes guiar para hacer tu codigo
Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #10 (permalink)  
Antiguo 19/05/2011, 19:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Paginar los ides de db si son numeros muy diferentes

Hay muchas formas de hacer lo que propones.

Una de ellas es guardar en una sesión un array/lista donde guardes todos los ids para que sepas cual consultar antes y después, la desventaja de eso es que si almacenas un nuevo registro no lo podrás ver hasta re-generar la sesión.

Otra es que en cada registro guardes el identificador de cual es el elemento anterior y siguiente, con eso evitas el problema anterior, pero la lógica al almacenar es más compleja.

Saludos.
  #11 (permalink)  
Antiguo 19/05/2011, 20:44
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 78
Antigüedad: 13 años
Puntos: 3
Respuesta: Paginar los ides de db si son numeros muy diferentes

esto no vale :

$v = rand(0,9999); //Dependiendo del n. máximo de ID's posibles


GatorV
si tienes razon hacerlo de este modo es mucho joder pero es muy eficaz
aprovechando ese id visto se le asigna un id_2 identificador

Cita:
Otra es que en cada registro guardes el identificador de cual es el elemento anterior y siguiente, con eso evitas el problema anterior, pero la lógica al almacenar es más compleja.
pero entendi lo que dijo el maestro con lo de rand si y es en base a eso dejando en un array pero sin duda anterior y siguiente no podra funcionar realmente lo que hara es mostrar uno a lo loco

Cual es el metodo ?

= /
  #12 (permalink)  
Antiguo 19/05/2011, 20:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Paginar los ides de db si son numeros muy diferentes

Como te comento, guardas en tu registro el identificador a la imagen anterior, es decir:
Código:
id      id_anterior id_siguiente imagen
==============================
5       NULL          15                imagen1.jpg
15     5                234              imagen2.jpg
234   15              539              imagen3.jpg
539   234            NULL            imagen4.jpg
Así al seleccionar el registro puedes saber que imagen es la que le sigue y cual es la anterior.

Saludos.
  #13 (permalink)  
Antiguo 19/05/2011, 21:03
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 78
Antigüedad: 13 años
Puntos: 3
Respuesta: Paginar los ides de db si son numeros muy diferentes

YO TENIA en mente algo mucho mas sencillo basandome en el uso del identificador esa tecnica gatorv no esta mal pero es mucho mas facil , bueno creo que esto ya concluye aqui parece que no hay otro metodo me da esa imprecion
  #14 (permalink)  
Antiguo 19/05/2011, 21:11
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Paginar los ides de db si son numeros muy diferentes

Cita:
Iniciado por GatorV Ver Mensaje
Como te comento, guardas en tu registro el identificador a la imagen anterior, es decir:
Código:
id      id_anterior id_siguiente imagen
==============================
5       NULL          15                imagen1.jpg
15     5                234              imagen2.jpg
234   15              539              imagen3.jpg
539   234            NULL            imagen4.jpg
Así al seleccionar el registro puedes saber que imagen es la que le sigue y cual es la anterior.

Saludos.


No creo ya que si borras un registro, no te sirve de nada, por ejemplo borras el ID15


La estructura de la tabla con la que vamos a trabajar es la siguiente:

articulos CREATE TABLE `articulos`
(`ArticulosNombre` varchar(40) NOT NULL default '',
`ArticulosPrecio` decimal(10,0) NOT NULL default '0',
`ArticuloID` int(6) NOT NULL auto_increment,
PRIMARY KEY (`ArticuloID`))
TYPE=MyISAM


El Movimiento Navegacional

Para poder implementar los botones navegacionales (adelante, atrás, último, primero) se ha dotado a la tabla Artículos de MySQL de un campo auto_increment para dotar de un identificador único a cada registro.

Para poder realizar los movimientos navegacionales se toma primero el valor del registro actual y se pide el siguiente/anterior/ultimo/primero.

Para, por ejemplo, ver el siguiente registro se ha usado:

SELECT * FROM articulos WHERE ArticuloID > ((_Registro_Actual)) LIMIT 1

Para poder ver el registro siguiente:

SELECT * FROM articulos WHERE ArticuloID > ((_Registro_Actual)) order by ;
ArticuloID Desc LIMIT 1

Fijate la opción LIMIT 1 que hará que sólo nos traiga un registro.

Para poder ir al último es algo más sencillo:

SELECT ArticuloID, ArticulosNombre,ArticulosPrecio FROM articulos Order by ;
ArticuloID DESC Limit 1
  #15 (permalink)  
Antiguo 19/05/2011, 21:19
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Paginar los ides de db si son numeros muy diferentes

Se me ocurrio algo, por ejemplo tenemos

ID | ALGO
1 | ASD
3 | BB
5 | AA

Lo que hacemos es:

Al entrar al ALGO cuyo ID es 1, hace esto

SELECT * FROM blabla ORDER BY ID ASC LIMIT $IDarticuloactual,1

El resultado de esto nos tendria que dar 3
  #16 (permalink)  
Antiguo 19/05/2011, 21:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Paginar los ides de db si son numeros muy diferentes



Yo sigo sin entender.

A ver, una consulta idéntica siempre va a dar los mismos resultados en determinado orden a menos que algo altere los datos y/o el orden de los resultados.

Entonces, si mi primer registro tiene como ID el 99 -por ejemplo- y el siguiente es 123, a menos que se ordenen de otro modo los resultados conservan un orden natural por ID, es obvio cual es el segundo resultado que obtenemos a través del proceso de fetching.

Igualmente si almacenamos todos los resultados uno por uno en un arreglo, el valor de ID del registro en la primer posición -cero- será 99, y el segundo -uno- será siempre 123 a menos que algo intervenga en el orden del arreglo.

Así pues, ¿por qué es tan urgente?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 19/05/2011, 22:09
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Paginar los ides de db si son numeros muy diferentes

Si igual la forma correcta de hacerlo son:

SELECT * FROM articulos WHERE ArticuloID > ((_Registro_Actual)) order by ;
ArticuloID Desc LIMIT 1

o

SELECT * FROM blabla ORDER BY ID ASC LIMIT $IDarticuloactual,1
  #18 (permalink)  
Antiguo 20/05/2011, 08:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Paginar los ides de db si son numeros muy diferentes

Cita:
Iniciado por marcofbb Ver Mensaje
No creo ya que si borras un registro, no te sirve de nada, por ejemplo borras el ID15


La estructura de la tabla con la que vamos a trabajar es la siguiente:

articulos CREATE TABLE `articulos`
(`ArticulosNombre` varchar(40) NOT NULL default '',
`ArticulosPrecio` decimal(10,0) NOT NULL default '0',
`ArticuloID` int(6) NOT NULL auto_increment,
PRIMARY KEY (`ArticuloID`))
TYPE=MyISAM


El Movimiento Navegacional

Para poder implementar los botones navegacionales (adelante, atrás, último, primero) se ha dotado a la tabla Artículos de MySQL de un campo auto_increment para dotar de un identificador único a cada registro.

Para poder realizar los movimientos navegacionales se toma primero el valor del registro actual y se pide el siguiente/anterior/ultimo/primero.

Para, por ejemplo, ver el siguiente registro se ha usado:

SELECT * FROM articulos WHERE ArticuloID > ((_Registro_Actual)) LIMIT 1

Para poder ver el registro siguiente:

SELECT * FROM articulos WHERE ArticuloID > ((_Registro_Actual)) order by ;
ArticuloID Desc LIMIT 1

Fijate la opción LIMIT 1 que hará que sólo nos traiga un registro.

Para poder ir al último es algo más sencillo:

SELECT ArticuloID, ArticulosNombre,ArticulosPrecio FROM articulos Order by ;
ArticuloID DESC Limit 1
La idea es que también al borrar hagas las consultas correspondientes para obtener los IDS posteriores y así no afectas la tabla, todo es parte de la lógica que implementes, recuerda que no hay nada mágico en la programación y tienes que tú como programador, hacer que el programa se comporte como necesitas.
  #19 (permalink)  
Antiguo 21/05/2011, 06:34
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Paginar los ides de db si son numeros muy diferentes

Cita:
Iniciado por GatorV Ver Mensaje
La idea es que también al borrar hagas las consultas correspondientes para obtener los IDS posteriores y así no afectas la tabla, todo es parte de la lógica que implementes, recuerda que no hay nada mágico en la programación y tienes que tú como programador, hacer que el programa se comporte como necesitas.
Si, eso que puse lo saque de google me olvide poner la fuente ahora lo rebusco y la pongo
  #20 (permalink)  
Antiguo 23/05/2011, 08:10
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 78
Antigüedad: 13 años
Puntos: 3
Respuesta: Paginar los ides de db si son numeros muy diferentes

Buueno este de asc no esta mal segun quieras lo haces asc o desc y listo mas facil
Cita:
Se me ocurrio algo, por ejemplo tenemos

ID | ALGO
1 | ASD
3 | BB
5 | AA

Lo que hacemos es:

Al entrar al ALGO cuyo ID es 1, hace esto

SELECT * FROM blabla ORDER BY ID ASC LIMIT $IDarticuloactual,1

El resultado de esto nos tendria que dar 3

pero lo que sugieres marcofbb es basico sencillo y sin complicaciones muy bien yo diria que eso es eficaz.
  #21 (permalink)  
Antiguo 23/05/2011, 08:16
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: Paginar los ides de db si son numeros muy diferentes

Cita:
Iniciado por joseppp Ver Mensaje
Buueno este de asc no esta mal segun quieras lo haces asc o desc y listo mas facil

¿en serio?

dios, esto es lo que te dijeron durante 15 post

Etiquetas: diferentes, numeros, paginar
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 19:11.