Foros del Web » Programando para Internet » PHP »

paginar la segunda o tercera fila de una tabla

Estas en el tema de paginar la segunda o tercera fila de una tabla en el foro de PHP en Foros del Web. Hola amigos, Me gustaría saber como paginar (por ejemplo) el segundo o el tercer registro de una tabla. Es decir, abro la base de datos, ...
  #1 (permalink)  
Antiguo 23/02/2005, 13:05
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 14 años, 2 meses
Puntos: 0
paginar la segunda o tercera fila de una tabla

Hola amigos,

Me gustaría saber como paginar (por ejemplo) el segundo o el tercer registro de una tabla.

Es decir, abro la base de datos, le digo la tabla y el orden de las filas y lo que quiero es que me muestre en vez del primero que tendría que salir, el segundo o el tercero.

Muchas gracias :)
  #2 (permalink)  
Antiguo 23/02/2005, 13:14
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 14 años, 6 meses
Puntos: 8
Utiliza la sentencia: LIMIT

Por cierto, esto en PHP, no *SQL

Saludos.
__________________
eft0's stuff! - http://estebanfernandez.net
  #3 (permalink)  
Antiguo 23/02/2005, 13:28
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 14 años, 2 meses
Puntos: 0
quería decir paginarlo en PHP Se me pasó, jejeje.

En asp lo hacía con move(1) pero desconozco como hacerlo en PHP.
  #4 (permalink)  
Antiguo 23/02/2005, 19:28
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 13 años, 5 meses
Puntos: 53
Esta es la funcion que necesitas:

mysql_data_seek($resultado_del_query, $Posicion_del_registro_en_la_tabla);

si quieres mas informacion:

http://www.php.net/manual/en/functio...-data-seek.php

espero te sirva, Bytes!!

si quieres un paginar completo, nomas avisame :D (un Msg Pers) te puedo mostrar algunos...

bytes!!
  #5 (permalink)  
Antiguo 24/02/2005, 05:39
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 14 años, 2 meses
Puntos: 0
Muchas gracias por la respuesta amigo.
Lo siento, pero no soy capaz de echarlo a andar :( Tal vez sea porque uso el "paginator" para hacerlo.... no se.

De todos modos os pongo el código a ver si se os ocurre algo:
Código PHP:
<?php
$con 
mysql_connect("server","login","pass") or die (mysql_error()); 
mysql_select_db("base de datos",$con) or die (mysql_error()); 
$_pagi_sql "SELECT * FROM tabla ORDER BY id DESC"
$_pagi_cuantos 10
include(
"inc/paginator.inc.php"); 
while(
$row mysql_fetch_array($_pagi_result)){ 
    echo
"Este es el campo id: ".$row['id'].".;

?>
  #6 (permalink)  
Antiguo 24/02/2005, 20:09
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Hola Davidap:
Yo sigo sin entender qué es exactamente lo que quieres hacer.
Con ese código obtendrás diez registros por cada página.
Fijémonos en la primera página: Te mostraría algo así:
Código:
Este es el campo id: 65
Este es el campo id: 64
Este es el campo id: 63
Este es el campo id: 62
Este es el campo id: 61
Este es el campo id: 60
Este es el campo id: 59
Este es el campo id: 58
Este es el campo id: 57
Este es el campo id: 56
Y la segunda página del 55 al 46 (suponiendo que no has borrado ningún registro, claro)...
Sería bueno que expliques (así, con ejemplo) cuál es el resultado que esperas obtener para poder entender mejor.

Saludos
  #7 (permalink)  
Antiguo 24/02/2005, 20:25
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Si lo que quieres es discriminar algún registro específico, por ejemplo, quieres mostrar todos los registros, menos el que tiene el id=1 y el que tiene el id=2 y el que tiene el id=27, bastará con que hagas tu consulta y dentro de las condiciones ("WHERE") pones:
"[AND] id<>1 AND id<>2 AND id<>27"

O puedes utilizar la cláusula "NOT IN" que te daría el mismo resultado. Pero hasta ahora estoy adivinando... preferiría que me pongas el ejemplo de lo que quieres obtener.

Saludos
  #8 (permalink)  
Antiguo 25/02/2005, 04:39
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 14 años, 2 meses
Puntos: 0
Muchas gracias :)

Pero es mucho más sencillo. No me expliqué bien. Mira, lo que quiero hacer es, por ejemplo tenemos una paginación ordenada por un determinado campo ("id") pues quiero que la paginación empiece por el 2º o 3º de la lista. En vez de empezar, como sería lógico, por el primero.


Ejemplo Tabla:

id titulo
1 uno
2 dos
3 tres
4 cuatro
5 cinco
etc...
  #9 (permalink)  
Antiguo 25/02/2005, 12:02
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 14 años, 2 meses
Puntos: 0
Se me olvidaba. Uso las funciones básicas del paginator y el include no lo modifico en absoluto.
  #10 (permalink)  
Antiguo 25/02/2005, 19:06
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Pues sigo sin entender del todo...
Tu "etc..." sigue dejando la duda abierta.

Tal vez si explicas para qué te serviría lo que pretendes hacer, te entenderíamos mejor. O tal vez te demos una alternativa diferente.

La duda es esta:
Tu pones $_pagi_cuantos=10 que quiere decir que quieres mostrar 10 registros por página. Si dices que no quieres mostrar los dos primeros entonces:
¿La página tendrá ocho registros (del 3 al 10)?
¿La página tendrá igual diez registros (del 3 al 12)?

Son soluciones muy distintas (por eso te decía que tu "etc" dejaba abierta la duda).

Si estamos en el primer caso, simplemente en el momenteo del "while" no muestres los dos primeros registros. Puedes utilizar mysql_data_seek() para moverte al tercer registro y empezar el while desde ahí.

Si estamos en el segundo caso, puedes discriminar en el mismo SQL qué registros no quieres que se muestren, como ya te puse en el post anterior.

Saludos
  #11 (permalink)  
Antiguo 26/02/2005, 06:02
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 14 años, 2 meses
Puntos: 0
Cita:
Si estamos en el primer caso, simplemente en el momenteo del "while" no muestres los dos primeros registros. Puedes utilizar mysql_data_seek() para moverte al tercer registro y empezar el while desde ahí.
Exacto. Es eso lo que quiero. Que haga un paginado normal, simplemente que ignorando los dos primeros registros que le de.

Siento mucho mi mala explicación

¿Cómo utilizaría el mysql_data_seek() para que no me mostrara los dos o tres primeros registros?.

Muchas gracias amigo.
  #12 (permalink)  
Antiguo 26/02/2005, 09:11
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Sigo pensando que lo mejor es que nos cuentes cómo vas a aplicar lo que quieres hacer... porque tal vez hay otra manera de hacerlo y menos complicada.
¿Por qué te digo esto?
- Me sigue quedando la duda de si quieres hacer eso en todas las páginas o sólo en la primera.
- Si hicieras el mysql_data_seek() y no muestras algunos registros, la variable $_pagi_info imprimirá igual: "... del 1 al 10 de un total de 57"... pero el usuario verá en realidad los registros del 3 al 10 lo cual puede ser un poco confuso o verse como un error.

Por favor danos TODA la información que pueda ser relevante para poder ayudarte mejor. Insisto en que nos cuentes para qué te serviría lo que quieres hacer.

Saludos
  #13 (permalink)  
Antiguo 26/02/2005, 12:07
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 14 años, 2 meses
Puntos: 0
Disculpa, se me pasó explicarte esto en el anterior mensaje.

- Quiero poder mostrar desde el segundo registro de una tabla, es decir, que en la paginación ignore el primero.

- Es sólo para una página sin relación con otras siguientes.

- Y tampoco estará relacionada con otra página alguna. Lo único que la quiero es para que me muestre una serie de enlaces a otras páginas.

No se si se me olvida algo, creo que no....


Muchas gracias por tu ayuda

Última edición por David224; 26/02/2005 a las 12:13
  #14 (permalink)  
Antiguo 26/02/2005, 12:55
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
En ese caso, no necesitas dividir todo el resulset en "páginas"... en otras palabras: No necesitas Paginator!!

Simplemente haz una consulta así:
Código PHP:
$sql "SELECT * FROM tabla ORDER BY id DESC LIMIT 2,10";// devolerá 10 registros empezando desde el tercero
$result mysql_query($sql);
while(
$row mysql_fetch_array($result)){
    echo
"Este es el campo id: ".$row['id'].".;

Saludos
  #15 (permalink)  
Antiguo 26/02/2005, 13:38
 
Fecha de Ingreso: octubre-2003
Ubicación: Santander
Mensajes: 236
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias por la aclaración :)

Ya lo conseguí. Que sencillo era y que mal me explicaba.....

Muchas gracias amigo.

Última edición por David224; 26/02/2005 a las 15:28
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 02:15.