Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Obtener página en que se encuentra resultado

Estas en el tema de Obtener página en que se encuentra resultado en el foro de PHP en Foros del Web. Primero que nada, buenas tardes a todos, un gusto saludarles de nuevo, aunque sea por este medio. El día de hoy estuve intentando hacer algo ...
  #1 (permalink)  
Antiguo 02/11/2016, 18:20
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 8 años, 9 meses
Puntos: 2
Obtener página en que se encuentra resultado

Primero que nada, buenas tardes a todos, un gusto saludarles de nuevo, aunque sea por este medio.

El día de hoy estuve intentando hacer algo relacionado con el título, sin lograr algún resultado, por cierto. Lo que sucede es que tengo una página donde se muestran los precios de diferentes productos resumidos, estos mediante una paginación, de la cual se muestran 5 resultados por pagina, en otra página aparte hago una consulta con la base de datos para obtener los productos "Recientemente añadidos", lo pretendía hacer es que en esta última página, al mostrar un producto, haya un vínculo que te envíe a la página donde se muestra el resumen de dicho producto. En resumidas cuentas quería enviar al usuario al número de página donde se encuentre el producto, para admirar el resumen, y así decidir si quiere tal o si desea continuar viendo productos.

Este es mi código para paginar en la página de resumen de productos:
Código PHP:
Ver original
  1. # OBTENEMOS TOTAL DE PRODUCTOS
  2.            $vPROD = SQL::vB("SELECT * FROM catalog_products");
  3.             $vCN = vNUM($vPROD);
  4.             # NUMERO DE REGISTROS POR PAGINA
  5.            $vNUMS = 5;
  6.  
  7.             # PAGINA POR DEFAULT (1)
  8.            $vPAG = 1;
  9.  
  10.             # DETERMINAMOS LA CANTIDAD DE PAGINAS
  11.            $vNPAG = ceil($vCN / $vNUMS);
  12.  
  13.             # COMPROBAMOS SI HAY DECIMAL
  14.            if($vNPAG <= 1){
  15.               $vNPAG = 1;
  16.             }
  17.             $vNPAG = round($vNPAG);
Cabe destacar que este código me funciona perfectamente, ya que si se puede optimizar pues sería genial que pudieras compartir como hacerlo :$

Y bueno, si vengo acá pidiendo amablemente de su ayuda es por que ya me he quebrado la cabeza y no tengo la idea de que hacer. Cabe aclarar que no soy un programador dedicado y mucho menos profesional, debido a esto, en tal ámbito se me complica un poco realizar tales cosas.
Espero que alguien pueda ayudarme, una mano no vendría nada mal jaja.
- Un abrazo hasta donde estés leyendo este post, y te deseo suerte y éxito en tus labores de día a día, o lo que estés haciendo en este momento.

Última edición por Silenn; 02/11/2016 a las 18:23 Razón: He incluido el código para paginar resultados
  #2 (permalink)  
Antiguo 03/11/2016, 19:55
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Obtener página en que se encuentra resultado

tengo una pequeña idea.
podrías revisar antes de mostrar la pagina.

recibes el producto y haces un select para paginar, lo recorres con un while creando un array con los id y revisas el id del arreglo resultante, asi puedes saber en que pagina esta.

si es id 13 divides 13/5 = 2.6
ceil(2.6)=3
esto te dirá donde esta el producto.
  #3 (permalink)  
Antiguo 04/11/2016, 19:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Obtener página en que se encuentra resultado

Haz una consulta para contar el total de registros; puesto que no estás especificando un orden, supongo que puede ser la id:

Código:
// Consulta
SELECT COUNT(*) FROM catalog_products WHERE id <= id_del_producto_actual
Luego obtienes el número de página dividiendo el resultado entre la cantidad de productos a mostrar por página y, por supuesto, redondeado hacia arriba:

Código PHP:
Ver original
  1. // $porpagina es el total de productos a mostrar en cada página
  2. // $total es el total de productos obtenidos de la operación anterior
  3. $pagina = ceil($total / $porpagina);

Por otra parte, no es recomendable ejecutar una consulta para leer todo el contenido de la tabla con la única finalidad de contar y calcular la paginación, es mejor usar COUNT(*)
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 06/11/2016, 14:41
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 8 años, 9 meses
Puntos: 2
Respuesta: Obtener página en que se encuentra resultado

Cita:
Iniciado por Triby Ver Mensaje
Haz una consulta para contar el total de registros; puesto que no estás especificando un orden, supongo que puede ser la id:

Código:
// Consulta
SELECT COUNT(*) FROM catalog_products WHERE id <= id_del_producto_actual
Luego obtienes el número de página dividiendo el resultado entre la cantidad de productos a mostrar por página y, por supuesto, redondeado hacia arriba:

Código PHP:
Ver original
  1. // $porpagina es el total de productos a mostrar en cada página
  2. // $total es el total de productos obtenidos de la operación anterior
  3. $pagina = ceil($total / $porpagina);

Por otra parte, no es recomendable ejecutar una consulta para leer todo el contenido de la tabla con la única finalidad de contar y calcular la paginación, es mejor usar COUNT(*)
Gracias por sus respuestas, funciona bien como me dices, el problema es que yo no especifiqué que en la página donde muestro el resumen (catalogo.php) los ordeno alfabéticamente para que se vea mejor, y en la página de inicio (index.php) muestro un sidebar en donde ordeno los últimos 15 productos, de acuerdo a la fecha de última vez modificado (ya sea precio, imágen, descripción, etc), entonces en una parte se ordenan de una manera y en la otra de otra, por tanto no coinciden los resultados.
Me partí la cabeza averiguando por que no resultaba bien con lo que me han dicho, hasta que me he percatado de este detalle jeje. Es posible tener una correcta paginación y obtención de esta sin que se altere el orden de los productos, ya que considero estéticamente esencial este punto. Gracias, saludos desde México.
  #5 (permalink)  
Antiguo 06/11/2016, 15:26
 
Fecha de Ingreso: julio-2015
Ubicación: Distrito Federal
Mensajes: 97
Antigüedad: 8 años, 9 meses
Puntos: 2
Respuesta: Obtener página en que se encuentra resultado

Al fin encontré la solución, jaja era ordenar en vez de id name, no sabía que los operadores igual funcionaban con letras y numeros.

Gracias a los dos infinitamente, un saludo.

Etiquetas: encuentra, página, resultado, usuario
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 13:51.