elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
26 Mayo 2012, 15:04  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?  (Leído 1,185 veces)
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« en: 13 Junio 2005, 04:18 »

quisiera saber como hacer una consulta a una db mysql e imprimir un indice, pero mostrando solo cierta cantidad de resultados por pagina, permitiendo asi ver una segunda, tercera  yasi sucesivamente que continuen con el indice....
del mismo modo que este foro lista x cantidad de post por pagina y puedes ver los restantes haciendo click en [2] (pagina 2....

Uds ya me entienden, no necesito hablar mas jaja.... :P

bueno, agradeceria si me dan una manito, y disculpen si no use el boscador, no me acostunbro a el y ademas no se con que parametro buscar lo que quiero... ;D


En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
Crack_X
Anti-War
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.320


Peace & Love


Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #1 en: 13 Junio 2005, 04:40 »

cuántico comento eso aqui (http://foro.elhacker.net/index.php/topic,72454.15.html) se llama paginacion , puedes buscarlo poniendo paginacion en php.

Es algo simple , solo un poco de matematicas bien aplicadas.  ;)


En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #2 en: 15 Junio 2005, 03:53 »

muchas graxias, lo vere....
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #3 en: 15 Junio 2005, 08:09 »

he encontrado ejemplos y codes, pero no los logro entender y adaptarlos... :(

Código:
<?
$conexion=mysql_connect('server','user','password');

mysql_select_db('base_db',$conexion);

$limite=5;
$sqlpag=$pag*5;
$sql = mysql_query("SELECT * FROM `noticias` ORDER BY id DESC LIMIT ". $sqlpag .",". $limite , $conexion) or die ('<FONT style="FONT-SIZE: 8pt" face=Verdana color=#ff0000><B>Error al conectar con la base de datos...</B></FONT>');
while($campo=mysql_fetch_array($sql))
{
echo $campo[id]."<br>";
$contados=$contados+1;
}
if ($contados==0)
{
$links=$links."<br><hr><br>NO HAY RESULTADOS<br><hr><br>";
}
elseif ($contados<=4)
{
if ($pag>=3){
$links=$links."<a href='?pag=". ($minpag=$pag-3) ."'>$minpag</a>&nbsp-&nbsp";
$links=$links."<a href='?pag=". ($minpag=$minpag+1) ."'>$minpag</a>&nbsp-&nbsp";
$links=$links."<a href='?pag=". ($minpag=$minpag+1) ."'>$minpag</a>&nbsp-&nbsp";
}
elseif ($pag>=2)
{
$links=$links."<a href='?pag=". ($minpag=$pag-2) ."'>$minpag</a>&nbsp-&nbsp";
$links=$links."<a href='?pag=". ($minpag=$minpag+1) ."'>$minpag</a>&nbsp-&nbsp";
}
elseif ($pag>=1)
{
$links=$links."<a href='?pag=". ($minpag=$pag-1) ."'>$minpag</a>&nbsp-&nbsp";
}else{}
$links=$links."<br><hr><br>NO HAY MÁS RESULTADOS<br><hr><br>";
}else{
if ($pag>=3){
$links=$links."<a href='?pag=". ($minpag=$pag-3) ."'>$minpag</a>&nbsp-&nbsp";
$links=$links."<a href='?pag=". ($minpag=$minpag+1) ."'>$minpag</a>&nbsp-&nbsp";
$links=$links."<a href='?pag=". ($minpag=$minpag+1) ."'>$minpag</a>&nbsp-&nbsp";
}
elseif ($pag>=2)
{
$links=$links."<a href='?pag=". ($minpag=$pag-2) ."'>$minpag</a>&nbsp-&nbsp";
$links=$links."<a href='?pag=". ($minpag=$minpag+1) ."'>$minpag</a>&nbsp-&nbsp";
}
elseif ($pag>=1)
{
$links=$links."<a href='?pag=". ($minpag=$pag-1) ."'>$minpag</a>&nbsp-&nbsp";
}else{}
$links=$links."<b>$pag</b>&nbsp-&nbsp";
if ($contados = 5){
$links=$links."<a href='?pag=". ($maxpag=$pag+1) ."'>$maxpag</a>&nbsp-&nbsp";
$links=$links."<a href='?pag=". ($maxpag=$maxpag+1) ."'>$maxpag</a>&nbsp-&nbsp";
$links=$links."<a href='?pag=". ($maxpag=$maxpag+1) ."'>$maxpag</a>";
}}
echo $links;

?>

esto es lo que he logrado....es poco, pero me gustaria saber si alguien no me da una manito y me lo corrige en lo que este mal (casi todo :P)
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
Morris
Ex-CoAdmin y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.966


Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #4 en: 16 Junio 2005, 00:17 »

:P Lo más más más fácil es hacerlos con DreamWeaver y te quitas de problemas. Te hace la paginación automáticamente en PHP y ASP.
En línea

SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #5 en: 16 Junio 2005, 07:31 »

yo no uso dream..... :( y no lo tengo  :'(

no pueden darme una manito uds con un code sencillito, osea que pagine y solo eso, yo me encargo de ajustarlo a mis necesidades....no pido mucho....

por favor, no me sale  :'(
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
Morris
Ex-CoAdmin y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.966


Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #6 en: 16 Junio 2005, 17:58 »

http://www.google.com.mx/search?hl=es&q=paginaci%C3%B3n+en+php&meta=

salu2
En línea

SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #7 en: 26 Junio 2005, 03:37 »

he conseguido este code, pero no funciona muy bien  :'(

no se que esta mal, si pueden darme una manito se los agradeceria muchisisisisisimo!!!!!

Código:
<html>
<head>
<title>Páginación de resultados</title>
</head>
<body bgcolor=#FFFFFF>
<?
// Datos de conexión a la base
$base="nombredelabase";
$con=mysql_connect(servidor,usuario,password);
mysql_select_db($base,$con);

if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;

$pegar = "SELECT * FROM tabla ORDER BY titulo LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());

$contar = "SELECT * FROM tabla ORDER BY titulo";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);

// Imprimiendo los resultados
while($array = mysql_fetch_array($cad)) {
echo $array['titulo']."<br>";
}

// Cerramos la conexión a la base
$con=mysql_close($con);

// Creando los enlaces de paginación
echo "<p class=fonty>";
if ($pg != 0) {
$url = $pg - 1;
echo "<a href='$PHP_SELF?pg=".$url."'>&laquo; Anterior</a>&nbsp;";
} else {
echo " ";
}
for ($i = 0; $i <= $pages; $i++) {
if ($i == $pg) {
if ($i == "0") {
echo "<b> 1 </b>";
} else {
$i = $i+1;
echo "<b> ".$i." </b>";
}
} else {
if ($i == "0") {
echo "<a href=$PHP_SELF?pg=".$i.">1</a> ";
} else {
echo "<a href='$PHP_SELF?pg=".$i."'>";
$i = $i+1;
echo $i."</a>&nbsp;";
}
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente &raquo;</a>";
} else {
echo " ";
}
echo "</p>";
?>
</body>
</html>
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #8 en: 30 Junio 2005, 05:36 »

ejem.... les molestaria mucho darme una manito, prometo no molestar mas con este post, pero es que necesito eso de la paginacion....PLZZZ!!!!!!!!!!!!!!!!!!
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
.Carlos


Desconectado Desconectado

Mensajes: 835

Web Entrepreneur


Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #9 en: 30 Junio 2005, 06:53 »

Cual es el error que te da? o que es lo que no funciona?
En línea

redHat


Desconectado Desconectado

Mensajes: 427


Don't fear the Penguin


Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #10 en: 30 Junio 2005, 07:00 »

Mira, el mió no está tan chido como el anterior, pero funciona, tu has cualquier consulta dentro de PHP, y modifica todo lo que veas que es amigable , tienes que tener muy bien esas matemáticas para lode módulos y los residuos, mira, este funciona para cuando el límite es de renglones, sí funciona.
Código:
// PAGINACION.PHP
<?php

 include "conectar.php";

 $consulta1=mysql_query("SELECT *FROM tu_tabla",$conexion);

 $total = mysql_num_rows($consulta1); //cantidad de renglones de tu consulta

 if(($inicio==10) or ($inicio==20) or ($inicio==30)) {  //Esto es si quieres que tu máximo numero de renglones sea de 10

  if($residuo==0) { $paginas=$total / $limite; }

  else { $paginas=($total - $residuo) / $limite + 1;   }

  $consulta2=mysql_query("SELECT *FROM tu_tabla LIMIT $inicio,$limite",$conexion);

  echo "<table>";

  while($row=mysql_fetch_array($consulta2)) {  //Te muestra los registros en el campo "tu_campo"

echo "<tr><td>$row['tu_campo']</td></tr>";

}

  echo "</table>";

$inicio=0;

for($i=1;$i<=$paginas;$i++) {

echo "<a href=http://localhost/paginacion.php?inicio=$inicio&limite=$limite&residuo=$residuo>-$i-</a>";

$inicio=$inicio+10;

}

}

 else { //Esto es el código inicial, debes leer este primero para entender lo segundo
 
  $limite=10; $inicio=0;

  $residuo=$total % $limite;

  if($residuo==0) { $paginas=$total / $limite; }

  else { $paginas=($total - $residuo) / $limite + 1;   }

  $consulta2=mysql_query("SELECT *FROM tu_tabla LIMIT $inicio,$limite",$conexion);

  echo "<table>";

  while($row=mysql_fetch_array($consulta2)) { //Te muestra los registros en el campo "tu_campo"

echo "<tr><td>$row['tu_campo']</td></tr>";

}

  echo "</table>";

  for($i=1;$i<=$paginas;$i++) {

echo "<a href=http://localhost/paginacion.php?inicio=$inicio&limite=$limite&residuo=$residuo>-$i-</a>";

$inicio=$inicio+10;

}

}

 ?>
NOTA, el archivo conectar.php, contiene
$conexion=mysql_conect(servidor,user,pass);
$db=tu_DB;
mysql_select_db($db,$conexion);

Tu modificalo, no lo intentes entender de golpe, crea tu consulta y verás que funcionará...
Cualquier duda pregunta...
Algunas notas sobre las páginas:
1-Árriba en el primer if(($inicio==10) or ($inicio==20) or ($inicio==30), puede ser cualquier multilo de 10 40, 50, 60, pero no se como interpretar a todos los multiplos de 10 en un solo if, yo lo hice hasta 3 por que tenía una consulta con menos de 30 mensajes, por eso eso es depende de que tantos mensajes tengas....
ojalá que te sirva, que yo estaba en las mismas, pero me decidí a hacerlo y me jaló bien....
PD, brujo pásate el codigo de este...=P
« Última modificación: 30 Junio 2005, 07:12 por redHat » En línea

Calaberas traseras transparentes $80.00, defensa de Honda Civic 2000, $1000.00, cambiarte 4 carriles con menos de 5 metros de espacio, no tiene precio.....
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #11 en: 23 Julio 2005, 08:06 »

bueno, se que insisto demasiado y no aprovecho bien todo lo que me ofrecen (y es que soy duro y algo mas que uds han de pensar pero no decir jajajaja).....

bueno, de tan duro que soy y como no pude adaptar ningun codigo (no se, cada vez que tocaba uno saltaba error) me he hecho mi propio code despues de romperme el marote un rato......(bastante largo ....jhaja)

Código:
<?

//...............

$conexion=mysql_connect($host_db,$usuario_db,$pass_db);

mysql_select_db($base_db,$conexion);


if ($order=='a'){

$sql = mysql_query("SELECT * FROM `tabla` ORDER BY `campoa` ASC", $conexion) or die ('<FONT style="FONT-SIZE: 8pt" face=Verdana color=#ff0000><B>Error al conectar con la base de datos...</B></FONT>');

$totales=mysql_num_rows($sql);

$ppagina = 5;
$paginas = ceil($totales/$ppagina);
if ($pagina =='' || $pagina == 0 || is_null($pagina) || $pagina > $paginas){$pagina=1;}

$sql = mysql_query("SELECT * FROM `tabla` ORDER BY `campoa` ASC LIMIT ". (($pagina*5)-4) ." , ". ($ppagina) ."", $conexion) or die ('<FONT style="FONT-SIZE: 8pt" face=Verdana color=#ff0000><B>Error al conectar con la base de datos...</B></FONT>');


}elseif ($order=='c' || $order=='' || is_null($order)){

$sql = mysql_query("SELECT * FROM `tabla` ORDER BY campob DESC", $conexion) or die ('<FONT style="FONT-SIZE: 8pt" face=Verdana color=#ff0000><B>Error al conectar con la base de datos...</B></FONT>');

$totales=mysql_num_rows($sql);

$ppagina = 5;
$paginas = ceil($totales/$ppagina);
if ($pagina =='' || $pagina == 0 || is_null($pagina) || $pagina > $paginas){$pagina=1;}
$sql = mysql_query("SELECT * FROM `tabla` ORDER BY campob DESC LIMIT ". (($pagina*5)-4) ." , ". ($ppagina) ."", $conexion) or die ('<FONT style="FONT-SIZE: 8pt" face=Verdana color=#ff0000><B>Error al conectar con la base de datos...</B></FONT>');
}
//imprimo el indice de paginas cercanas, anterior y siguiente.....
     
if ($pagina-1 < 1){echo "&nbspAnterior&nbsp";}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina-1) ."'>
      &lt;&lt;&nbspAnterior</a>&nbsp";}
if ($pagina-4 < 1){/*echo "&nbsp&nbsp&nbsp";*/}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina-4) ."'>". ($pagina-4) ."</a>&nbsp";}
if ($pagina-3 < 1){/*echo "&nbsp&nbsp&nbsp";*/}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina-3) ."'>". ($pagina-3) ."</a>&nbsp";}
if ($pagina-2 < 1){/*echo "&nbsp&nbsp&nbsp";*/}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina-2) ."'>". ($pagina-2) ."</a>&nbsp";}
if ($pagina-1 < 1){/*echo "&nbsp&nbsp&nbsp";*/}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina-1) ."'>". ($pagina-1) ."</a>&nbsp";}
echo '&nbsp<b>'.$pagina.'</b>&nbsp';
if ($pagina+1 > $paginas){}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina+1) ."'>". ($pagina+1) ."</a>&nbsp";}
if ($pagina+2 > $paginas){}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina+2) ."'>". ($pagina+2) ."</a>&nbsp";}
if ($pagina+3 > $paginas){}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina+3) ."'>". ($pagina+3) ."</a>&nbsp";}
if ($pagina+4 > $paginas){}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina+4) ."'>". ($pagina+4) ."</a>&nbsp";}
if ($pagina+1 > $paginas){echo "&nbspSiguiente&nbsp";}else{ echo "&nbsp<a href='?order=$order&pagina=". ($pagina+1) ."'>Siguiente&nbsp&gt;&gt;</a>&nbsp";}
     

      ?><br><br><FONT style="FONT-SIZE: 8pt" face=Verdana>
Ver listado de noticias completo:<br>
<a style="text-decoration: none" href="?order=c">cronológicamente</a> -
<a style="text-decoration: none" href="?order=a">alfabéticamente</a><br>


<?
//imprimo 5 resultados, los correspondientes a la consulta de esta pagina.....
while($campo=mysql_fetch_array($sql))
{
//......................
}
?>

antes de que lo digan, no es el mejor, no es de optimo rendimiento pues hace 2 consultas cada vez que ves la pagina y tiene muchos if y todo eso... si, es verdad, pero es lo que me sale....
jaja

acepto modificaciones, correcciones y sugerencias....

pero mi post no es para esto solo, sino que me funciona medio mal (por no decir todo)....

resulta que esto es para paginar las noticias de mi web (pienso usarlo en otros lugares mas, peor hasta que funcione bien no lo pongo en otro lado) y pues, solo tengo 2 registros en la tabla de la db que tiene las noticias y sucede que cuando pongo $order=c me tira uno de los 2 registros y cuando hago $order=a me tira el otro.....cuando solo deberia mostrar los 2 pero ordenados por el campo fecha (campob) o por el campo titulo (campoa).....

no comprendo que es lo que anda mal para que me "coma" registros, osea que me muestre menos de los que hay.....

ayuda!!!!!!!

desde ya muchas gracias a todos y perdon por la insistencia.... ;D
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
-Riven-Ward-
RivenSoft


Desconectado Desconectado

Mensajes: 2.216


Do you like Mario? xDDDDDDDDDDDD


Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #12 en: 23 Julio 2005, 16:03 »

Muy poco dinámico el código que pones... ¿Porqué no pruebas las opciones que te dieron arriba? Yo también tengo uno, te aseguro que funciona y todo eso pero ya te ofrecieron algunos, prueba con ellos y después me dices.

Por cierto, ¿Qué es lo que no te funciona de ese código?

Salu2!
En línea

Usuario Banneado
Rentero
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.163


La paciencia es la madre de la ciencia.


Ver Perfil
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #13 en: 23 Julio 2005, 17:23 »

Hacer una paginación es muy fácil, aunque en internet lo pinten como una cosa solo para dioses.

Veamos...
Toda la historia está en usar la sentencia LIMIT en la consulta a la db.

La sentencia LIMIT funciona de esta forma:
Código:
SELECT * FROM tabla ORDER BY id ASC LIMIT 0,20
En este ejemplo la consulta SQL seleccionaría las 20 primeras coincidencias ordenadas por ID.
El 0(cero) es el inicio de la selección y el 20 es la cantidad de coincidencias a seleccionar.
Esto creo que está claro.

Ahora...
De lo que se trata en la paginación es de controlar los valores que le pasamos a LIMIT.
Para hacerlo lo mas dinámico posible usamos variables, concretamente dos, una para marcar el incio de la selección y otra para determinar la cantidad de resultados que queremos mostrar.

Un pequeño ejemplo...
Código:
<?php
// $conec = mysql_connect();
// mysql_select_db(); etc, etc.

$pagina_actual = $_GET["pag"]; //esto es muy bueno hacerlo
$cantidad_resultados = 10; //es la cantidad de resultados que quieres mostrar por página
$inicio_seleccion = $pagina_actual * $cantidad_resultados; //el inicio depende de la página en la que estemos

if(!$pagina_actual) $pagina_actual = 0; //si estamos en archivo.php el inicio es cero
$resp = mysql_query("SELECT * FROM tabla ORDER BY id ASC LIMIT $incio_seleccion,$cantidad_resultados", $conec)

// ya esta la paginación, solo keda mostrar los resultados
//....
//while($row = mysql_fetch_array($resp))
//{
// echo $row["campo"].'<br>';
//}
// bla, bla...
// añades unos enlaces a las paginas siguientes y listo
// echo '<a href="$PHP_SELF?pag='.($pagina_actual+1).'">Pagina siguiente</a> | ';
// echo '<a href="$PHP_SELF?pag='.($pagina_actual-1).'">Pagina anterior</a>';
// ......
?>
En este ejemplo la paginas deberían ser de esta forma: archivo.php?pag=2
Donde el número 2 es el número de la pagina. Si el numero fuera 2 y la cantidad de resultados por pagina fuera 10...en ese caso estarias mostrandos los resultados desde el 20 hasta el 30.

Bueno, no veo las matemáticas difíciles por ningún lado xDD


Creo que con esta está mas que claro como se hace una paginación...ahora solo queda que te codees un script a tu gusto. Ya sabes, alguna duda...postea.

Saludos :)
En línea

Firmado.
SERBice


Desconectado Desconectado

Mensajes: 932



Ver Perfil WWW
Re: armar indice a travez de db, pero mostrando x resultados por pagina ¿como?
« Respuesta #14 en: 24 Julio 2005, 05:35 »

muy lindo code neohex, ahora mi pregunta......



como sabes el fin de la paginacion, osea donde se acaban las paginas..... con ese code segun veo si sigues haciendo click en siguiente puedes avanzar paginas en blanco, osea cuando no hay mas resultados.... por ej, podrias ir por la pagina 6 cuando en verdad hubiera 40 resultados....

¿me equivoco?

otra observacion es que figuran los links atras y adelante, pero ningun numero de pagina....
En línea

Asus M2N-SLI - 4GB DDR2 OCz System Elite - AMD Athlon 64 x2 5200+ - GeForce 8800GS 384MB Alpha Dog Edition - WD 7200rpm 500GB - Asus DRW-2014L1T
Asus M2N-E - 4GB DDR2 OCz System Elite - AMD Phenom II x4 945 - GeForce 8800GS 384MB Alpha Dog Edition - 4x WD CaviarBlack 1TB - Asus DRW-22B2S
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines