Por favor,Alguien sabe como es para poner los numeros: <1 2 2...> debajo del foro
Por favor,Alguien sabe como es para poner los numeros: <1 2 3 4 ...> debajo del foro cuando pase de los 10 mensajes???
Por favor! ayuda!!
Por favor! ayuda!!
Yo lo resolvi a mano, es decir haciendo la paginacion dividiendo el total por X cantidad por pagina, en cada numero paso el id del primero de esa pagina por ejemplo. .. proba es facil...
Mira.. el codigo no lo tengo..
siempre en una misma pagina...
primero calcula el total de registros.
Despues dividi por X registros por paginas.
Segun la pagina que toque, vas salteando cuales no mostrar con un iterador que va incrementado
no es una forma optima ya que siempre buscas TODOS los registros y mostras solo los que estan en ese intervalo. Ahora no se me ocurre una forma mas optima en rendimiento.. tendria que pensarlo mejor
al final para poner los numeros de pagina simplemente hace un "for" desde 1 hasta la cantidad de paginas que devolvio la division anterior. poniendo en cada uno un link al primero ej: 10 registros por pagina, pone en la pagina 3 un link al 31
no es dificil.. pensalo
siempre en una misma pagina...
primero calcula el total de registros.
Despues dividi por X registros por paginas.
Segun la pagina que toque, vas salteando cuales no mostrar con un iterador que va incrementado
no es una forma optima ya que siempre buscas TODOS los registros y mostras solo los que estan en ese intervalo. Ahora no se me ocurre una forma mas optima en rendimiento.. tendria que pensarlo mejor
al final para poner los numeros de pagina simplemente hace un "for" desde 1 hasta la cantidad de paginas que devolvio la division anterior. poniendo en cada uno un link al primero ej: 10 registros por pagina, pone en la pagina 3 un link al 31
no es dificil.. pensalo
Hola,
Te pongo un script de paginaci贸n de resultados con consulta a una db Mysql, a ver si es eso lo que necesitas:
<?
//Este script se llama "paginar.php" y debe ser incluido en una p谩gina
//llamada "listado.php" (puedes cambiar el nombre de las p谩ginas, pero
//recuerda cambiar "listado.php" por el nombre que decidas tambi茅n en
//este c贸digo.
//o sea, que debes crear dos p谩ginas PHP, una con este c贸digo y otra
//que en el lugar donde quieras que aparezca la tabla incluya la
//instrucci贸n "include("paginar.php");"
//En el ejemplo supongo que conectas a una db MySQL que tiene una tabla
//con cuatro campos llamados "CAMPO1", "CAMPO2", "CAMPO3", "CAMPO4"
//que quieres leer y mostrar en forma de tabla,
//paginando los resultados de 20 en 20.
$pg=$_GET['pg'];
//conexion a la base de datos
$host="localhost";
$user="usuario";
$pass="password";
$db="base_de_datos";
$tabla="tabla";
//conectamos con la base de datos
$con=mysql_connect($host,$user,$pass);
mysql_select_db($db,$con);
//establecemos condiciones de paginacion
if (!isset($_GET['pg'])){
$pg = 0;
}
$cantidad = 20; //Aqui es donde indicas el n煤mero de registros por p谩gina
$inicial = $pg * $cantidad;
//realizamos la busqueda en la base de datos
//en este supuesto consulto todos los datos de la tabla, pero
//puedes acotar los resultados con where.
$pegar = "SELECT * FROM $tabla LIMIT $inicial,$cantidad"; //Aqui es donde puedes acotar la consulta con where
$cad = mysql_db_query($db,$pegar) or die (mysql_error());
//calculamos las paginas a mostrar
//como no he acotado la consulta con where, simplemente
//cuento todos los registros almacenados.
$contar = "SELECT * FROM $tabla"; //cuenta todos los registros, si has acotado con where, recuerda ponerlo tambi茅n aqui
$contarok = mysql_db_query($db,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
//imprimiendo los resultados, primero los encabezaddos de las columnas de la tabla
echo "<table width=100% align=center border=0 cellspacing=2 cellpadding=2 bgcolor=#FFFFFF>";
echo "<tr bgcolor=#666666>";
echo "<td>Titulo_Columna1</td>";
echo "<td>Titulo_Columna2</td>";
echo "<td>Titulo_Columna3</td>";
echo "<td>Titulo_Columna4</td>";
//imprimiendo los resultados, ahora los datos en filas
while ($array = mysql_fetch_array($cad))
{
echo "<tr bgcolor=#EBF0F9>";
echo "<td>",$array[CAMPO1],"</td>";
echo "<td>",$array[CAMPO2],"</td>";
echo "<td>",$array[CAMPO3],"</td>";
echo "<td>",$array[CAMPO4],"</td>";
} //fin imprimir resultados
echo "</table>";
// Cerramos la conexi贸n a la base
$con=mysql_close($con);
//creando los enlaces de paginacion de resultados (los numeritos 1,2,3,4... y Anterior/Siguiente)
echo "<center><p>";
if ($pg <>0)
{
$url = $pg - 1;
echo "<font><a href='listado.php?pg=".$url."'>« Anterior</a> </font>";
}
else {
echo " ";
}
for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo "<font><b> $i </b></font>";
}
else {
echo "<font><a href='listado.php?pg=".$i."'>".$i."</a> </font>";
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "<font><a href='listado.php?pg=".$url."'>Seg眉ent »</a></font>";
}
else {
echo " ";
}
echo "</p></center>";
?>
Te pongo un script de paginaci贸n de resultados con consulta a una db Mysql, a ver si es eso lo que necesitas:
<?
//Este script se llama "paginar.php" y debe ser incluido en una p谩gina
//llamada "listado.php" (puedes cambiar el nombre de las p谩ginas, pero
//recuerda cambiar "listado.php" por el nombre que decidas tambi茅n en
//este c贸digo.
//o sea, que debes crear dos p谩ginas PHP, una con este c贸digo y otra
//que en el lugar donde quieras que aparezca la tabla incluya la
//instrucci贸n "include("paginar.php");"
//En el ejemplo supongo que conectas a una db MySQL que tiene una tabla
//con cuatro campos llamados "CAMPO1", "CAMPO2", "CAMPO3", "CAMPO4"
//que quieres leer y mostrar en forma de tabla,
//paginando los resultados de 20 en 20.
$pg=$_GET['pg'];
//conexion a la base de datos
$host="localhost";
$user="usuario";
$pass="password";
$db="base_de_datos";
$tabla="tabla";
//conectamos con la base de datos
$con=mysql_connect($host,$user,$pass);
mysql_select_db($db,$con);
//establecemos condiciones de paginacion
if (!isset($_GET['pg'])){
$pg = 0;
}
$cantidad = 20; //Aqui es donde indicas el n煤mero de registros por p谩gina
$inicial = $pg * $cantidad;
//realizamos la busqueda en la base de datos
//en este supuesto consulto todos los datos de la tabla, pero
//puedes acotar los resultados con where.
$pegar = "SELECT * FROM $tabla LIMIT $inicial,$cantidad"; //Aqui es donde puedes acotar la consulta con where
$cad = mysql_db_query($db,$pegar) or die (mysql_error());
//calculamos las paginas a mostrar
//como no he acotado la consulta con where, simplemente
//cuento todos los registros almacenados.
$contar = "SELECT * FROM $tabla"; //cuenta todos los registros, si has acotado con where, recuerda ponerlo tambi茅n aqui
$contarok = mysql_db_query($db,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
//imprimiendo los resultados, primero los encabezaddos de las columnas de la tabla
echo "<table width=100% align=center border=0 cellspacing=2 cellpadding=2 bgcolor=#FFFFFF>";
echo "<tr bgcolor=#666666>";
echo "<td>Titulo_Columna1</td>";
echo "<td>Titulo_Columna2</td>";
echo "<td>Titulo_Columna3</td>";
echo "<td>Titulo_Columna4</td>";
//imprimiendo los resultados, ahora los datos en filas
while ($array = mysql_fetch_array($cad))
{
echo "<tr bgcolor=#EBF0F9>";
echo "<td>",$array[CAMPO1],"</td>";
echo "<td>",$array[CAMPO2],"</td>";
echo "<td>",$array[CAMPO3],"</td>";
echo "<td>",$array[CAMPO4],"</td>";
} //fin imprimir resultados
echo "</table>";
// Cerramos la conexi贸n a la base
$con=mysql_close($con);
//creando los enlaces de paginacion de resultados (los numeritos 1,2,3,4... y Anterior/Siguiente)
echo "<center><p>";
if ($pg <>0)
{
$url = $pg - 1;
echo "<font><a href='listado.php?pg=".$url."'>« Anterior</a> </font>";
}
else {
echo " ";
}
for ($i = 0; $i<($pages + 1); $i++) {
if ($i == $pg) {
echo "<font><b> $i </b></font>";
}
else {
echo "<font><a href='listado.php?pg=".$i."'>".$i."</a> </font>";
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "<font><a href='listado.php?pg=".$url."'>Seg眉ent »</a></font>";
}
else {
echo " ";
}
echo "</p></center>";
?>