entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Necesito ayuda sobre hacer una paginación con jQuery Ajax y PHP

Estoy algo confuso al hacer una paginación, ya que nunca la he realizado.

Tengo varios ejemplos, pero no sé exactamente como utilizarlo. El caso es que necesito obtener información de una tabla, por así decir de Usuarios y si hay 1.000 registros que me los vaya paginando 12 por cada página.

Sé que hay que hacer una consulta con un Limit y tal, pero no me queda muy claro, sobre todo la llamada por ajax.

Con que sea el ejemplo más sencillo para poder hacerlo me bastaría, una vez que lo realice ya me iré comiendo la cabeza con detalles.

Gracias.

1voto

carlossevi comentado

En esta misma página se ha hablado varias veces de paginación: paginación en entre Desarrolladores.

En cualquier caso, si ya has leído bastante documentación generalista y estás algo confuso, intenta hacer una pregunta más concreta ya que con una pregunta tan difusa lo más normal es que vuelvas a encontrar respuestas generales similares a la información que no te ha sacado de tu confusión.

Como ejemplos sencillos y genéricos te remitiría a las respuestas registradas en las preguntas del enlace que te pongo más arriba.

1voto

danielreales7 comentado

Mira tengo lo siguiente:

//primero obtenemos el parametro que nos dice en que pagina estamos
                                $page = 1; //inicializamos la variable $page a 1 por default
                                if(array_key_exists('pg', $_GET)){
                                    $page = $_GET['pg']; //si el valor pg existe en nuestra url, significa que estamos en una pagina en especifico.
                                }

                                $conteo_query_2 =  "SELECT COUNT(*) as conteo FROM T_GRUPOS_MIEMBROS WHERE group_id = 7";
                                $result_conteo_query = mysqli_query($conexion, $conteo_query_2);
                                $conteo = "";
                                while($obj = $result_conteo_query->fetch_object()){
                                    $conteo =$obj->conteo; 
                                }
                                $result_conteo_query->close(); 
                                unset($obj);

                                //ahora dividimos el conteo por el numero de registros que queremos por pagina.
                                $max_num_paginas = intval($conteo/12); //en esto caso 10    
                                /* 
                                    FIN PAGINADOR
                                */
                                $sqlMiembrosSurja = 'SELECT user_id FROM T_GRUPOS_MIEMBROS WHERE group_id = 7';
                                $resultadoSurja = mysqli_query($conexion,$sqlMiembrosSurja);

                                if(!$resultadoSurja){
                                    echo "Error";
                                }else{
                                    while($rowSurja = mysqli_fetch_array($resultadoSurja)){
                                        $idUser = $rowSurja[0];
                                        $sqlUsuarios = "SELECT * FROM T_USUARIOS WHERE ID = $idUser LIMIT ".(($page-1)*12).", 12 ";
                                        $resultadoUsuarios = mysqli_query($conexion,$sqlUsuarios);
                                        $rowUsuarios = mysqli_fetch_array($resultadoUsuarios);

Y de ahí voy mostrando los usuarios pero no me los pagina de 12 en 12 como quiero me pone todos en una misma página y en el paginador, le doy a la siguiente página y me devuelve resultados en blanco.

1voto

carlossevi comentado

¿Qué resultados quieres paginar? El número de páginas (conteo) lo sacas de T_GRUPOS_MIEMBROS, pero después recorres todos los elementos de la consulta de miembros y por cada miembro paginas sobre T_USUARIOS.

Tienes dos consultas anidadas ¿Cual es la que necesitas paginar? ¿La de rowUsuarios o la de rowSurja?

1voto

danielreales7 comentado

Sí, la tabla T_GRUPOS_MIEMBROS es donde almaceno a que grupo pertenece cada usuario y quiero obtener de ahí el ID para ir mostrándolos de la tabla T_USUARIOS del grupo al que pertenezcan (esta es la que quiero paginar).

1voto

carlossevi comentado

Si quieres paginar la tabla T_USUARIOS el conteo total de páginas lo debes sacar de esa consulta y no de la otra, eso deberías cambiarlo.

De todas formas, aunque el número total de páginas esté mal, la paginación sí que debería funcionar. Según está el codigo, esa consulta no debería devolverte más de 12 usuarios ¿están saliéndote más?

En cualquier caso, no consigo entender el funcionamiento que quieres conseguir ya que al tener dos consultas anidadas en bucle considero que la paginación pierde todo el sentido.

1voto

danielreales7 comentado

Al final era porque tengo que poner el LIMIT en la tabla T_GRUPOS_MIEMBROS en vez de la tabla T_USUARIOS y ya si me muestra bien el paginado.

Gracias de nuevo carlos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta