Antes de hacer la paginación..

R

RemPro

Hola, tengo una lista de datos en Div con efecto acordeon. Dichos datos los copio manualmente desde una base de datos(no se actualizan muy seguido y me resulta fácil hacerlo), mi pregunta es como puedo hacer para aplicar paginación.
Creo este topic en la sección de PHP porque supongo será lo mas fácil :p pero si hay otro lenguaje que me pueda utilziar (javascript, por ejemplo) bienvenido sea :D
 

zcriptz

1
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
Desde
26 Mar 2013
Mensajes
4.621
Con el LIMIT de MySQL
 

phoneval

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Dic 2013
Mensajes
71
Yo lo haría por ajax usando el limit de mysql como te ha dicho zcriptz, te creas un php que reciba la pagina a mostrar y que devuelva los datos de esa pagina:

Por ejemplo quieres motrar la pagina 3 de la paginacion de resultados, le envias por get al archivo php el numero de pagina, multiplicas ese numero por el numero de filas que muestras en cada pagina (por ejemplo 10) y ya tienes el valor tope, le restas 10 al valor tope y tienes el valor inicial.
 
R

RemPro

Yo lo haría por ajax usando el limit de mysql como te ha dicho zcriptz, te creas un php que reciba la pagina a mostrar y que devuelva los datos de esa pagina:

Por ejemplo quieres motrar la pagina 3 de la paginacion de resultados, le envias por get al archivo php el numero de pagina, multiplicas ese numero por el numero de filas que muestras en cada pagina (por ejemplo 10) y ya tienes el valor tope, le restas 10 al valor tope y tienes el valor inicial.

Gracias por la respuesta, pero recuerda que lo escribiré "a mano" en el div (efecto acordeon) para evitar ciertos errores.
Por cierto, estoy buscando en youtube sobre Limit y UNICAMENTE aparece en inglés (no lo domino muy bien por ahora) XD
 

zcriptz

1
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
Desde
26 Mar 2013
Mensajes
4.621
es facil

LIMIT 2,10

Serian 10 resultados máximo, salteando 2 filas

LIMIT 10,10

Serian 10 resultados máximo, salteando 10 filas
 

ralsalamanca

Beta
Social Media
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
1 Dic 2013
Mensajes
56
La consulta MySQL debe ser algo así
Insertar CODE, HTML o PHP:
SELECT * FROM tabla (condicionales u otras operaciones) LIMIT [B]x[/B],[B]y[/B]
Donde x es el registro desde el cual COMIENZAS y luego y es la cantidad de elementos que vas a mostrar desde el registro del cual comenzaste.

Entonces, aplicado en tu página, de ejemplo más o menos sería así:
Obtienes el parámetero desde el valor 'pagina', osea la URL cargaria como http://dominio.com/archivo.php?pagina=2

Insertar CODE, HTML o PHP:
SELECT * FROM tabla (...) LIMIT [B]x[/B]*pagina,[B]y[/B]

Ahora, si quieres calcular la cantida de páginas que se van a generar, es bastante fácil, debes dividir la cantidad de registros por la cantidad de registros por página y valor que te de, si es que te da decimal, aproximado automáticamente al número mayor. Osea, si son 1000 registros y despliegas 9 registros por página, sería 1000/9=111.111... entonces se apróxima al siguiente valor, serían 112 páginas.
 

vicram10

Épsilon
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
8 May 2013
Mensajes
751
Edad
39
En realidad no podra usar ninguna consulta SQL ya que él carga a mano el html de lo que quiere mostrar

Una forma de hacer paginacion de puro html sin base de datos seria algo asi..

Yo uso Jquery para ser mas facil y rapido

Solo debes crear un html de esta forma

PHP:
<html>
<head>
	<title>Paginacion sin BD</title>
</head>
<body>
	
	<div id="page_1">
		Contenido del div 1
	</div>	
	<div id="page_2" style="display:none">
		Contenido del div 2
	</div>	
	<div id="page_3" style="display:none">
		Contenido del div 3
	</div>	
	<div id="page_4" style="display:none">
		Contenido del div 4
	</div>
	<p>
		<a href="javascript:void(0);" paginacion="1">1</a>&nbsp;<a href="javascript:void(0);" paginacion="2">2</a>
		&nbsp;<a href="javascript:void(0);" paginacion="3">3</a>&nbsp;<a href="javascript:void(0);" paginacion="4">4</a>
	</p>
	<!-- jquery -->
	<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
	<script type="text/javascript">
		$(document).ready(function() { 
			$('a').on("click",function(){
				var paginacion = $(this).attr('paginacion');
				var div = "#page_" + paginacion;
				$("div[id!="+div+"]").hide();
				$(div).fadeIn("slow");
			});
		});
	</script>
</body>
</html>

Segun mi ejemplo debes crear tantos divs como "paginacion" quieres tener.. por ejemplo si queres que tenga 4 paginas entonces debes crear 4 div con la caracteristica siguiente

PHP:
<div id="page_1">		
Contenido del div 1
</div>

Una ves que tienes la cantidad de divs que quieres debes crear la misma cantidad pero links..

PHP:
<a href="javascript:void(0);" paginacion="1">1</a>

Donde el atributo "paginacion" es el que ayudará a saber cual div mostraremos y cuales ocultaremos.

Un ejemplo de como queda esta aqui Paginacion sin BD
 
Última edición:
R

RemPro

¡¡Esto es realmente excelente!!, muchas gracias :D
Ahora solo lo que me queda hacer es ordenar las ofertas de trabajo por categorías.. ¿sugerencias :p ?

En realidad no podra usar ninguna consulta SQL ya que él carga a mano el html de lo que quiere mostrar

Una forma de hacer paginacion de puro html sin base de datos seria algo asi..

Yo uso Jquery para ser mas facil y rapido

Solo debes crear un html de esta forma

PHP:
<html>
<head>
	<title>Paginacion sin BD</title>
</head>
<body>
	
	<div id="page_1">
		Contenido del div 1
	</div>	
	<div id="page_2" style="display:none">
		Contenido del div 2
	</div>	
	<div id="page_3" style="display:none">
		Contenido del div 3
	</div>	
	<div id="page_4" style="display:none">
		Contenido del div 4
	</div>
	<p>
		<a href="javascript:void(0);" paginacion="1">1</a>*<a href="javascript:void(0);" paginacion="2">2</a>
		*<a href="javascript:void(0);" paginacion="3">3</a>*<a href="javascript:void(0);" paginacion="4">4</a>
	</p>
	<!-- jquery -->
	<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
	<script type="text/javascript">
		$(document).ready(function() { 
			$('a').on("click",function(){
				var paginacion = $(this).attr('paginacion');
				var div = "#page_" + paginacion;
				$("div[id!="+div+"]").hide();
				$(div).fadeIn("slow");
			});
		});
	</script>
</body>
</html>

Segun mi ejemplo debes crear tantos divs como "paginacion" quieres tener.. por ejemplo si queres que tenga 4 paginas entonces debes crear 4 div con la caracteristica siguiente

PHP:
<div id="page_1">		
Contenido del div 1
</div>

Una ves que tienes la cantidad de divs que quieres debes crear la misma cantidad pero links..

PHP:
<a href="javascript:void(0);" paginacion="1">1</a>

Donde el atributo "paginacion" es el que ayudará a saber cual div mostraremos y cuales ocultaremos.

Un ejemplo de como queda esta aqui Paginacion sin BD
 

vicram10

Épsilon
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
8 May 2013
Mensajes
751
Edad
39
Mejor si colocas la nueva duda en un tema aparte, ya que aqui solo necesitas saber la paginacion y creo que ya fue resuelto ese problema...
 
Arriba