Tema: Buscar Datos
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/12/2004, 23:09
Avatar de ignacio_giri
ignacio_giri
 
Fecha de Ingreso: febrero-2003
Ubicación: Argentina, Rosario
Mensajes: 585
Antigüedad: 21 años, 2 meses
Puntos: 0
bueno, yo te doy una mano con el paginador, es muy fácil. Son 2 páginas, una página que genera el codigo PHP que te divide la consulta que hagas a la base de datos en varias páginas... y la otra página es la que muestra: "1" "2" "3" Siguiente

script-genera-paginas.php

<?php
$maxresult = 16;
//16 es el numero de los resultados que queres que te tire, en tu caso, seria "10"
$result = mysql_query( $consulta ) or error( mysql_error() );
$totalresult = mysql_num_rows( $result );
if( $totalresult <= $maxresult ) $totalPages = 1;
elseif( $totalresult % $maxresult == 0 ) $totalPages = $totalresult / $maxresult;
else $totalPages = ceil( $totalresult / $maxresult );
if( !isset( $page ) ) $page = 1;
elseif( $page > $totalPages || $page < 1 ) $page = 1;
if( $totalresult == 0 ) $resultStart = 0;
else $resultStart = $maxresult * $page - $maxresult + 1;
if( $page == $totalPages ) $resultEnd = $totalresult;
else $resultEnd = $maxresult * $page;
$prePage = $page - 1;
$nextPage = $page + 1;
$initresult = $maxresult * $page - $maxresult;
$consulta = mysql_query( $consulta." LIMIT $initresult, $maxresult" ) or error( mysql_error() );
?>

script-muestra-paginas.php

<?php
// Muestra Paginador
if ($totalPages <> 1) {
?>
<table width="100%" border="0" cellpadding="5" cellspacing="1" align="center">
<tr>
<td align="center"><p>
<?
if( $page != 1 ) echo "&nbsp;<a href=\"$PHP_SELF?idcat=$idcat&page=$prePage\">Ante rior</a>&nbsp;";
for( $i = 1; $i <= $totalPages; $i++ )
{
if( $page == $i ) echo " $i ";
else echo "&nbsp;<a href=\"$PHP_SELF?idcat=$idcat&page=$i\"><b>$i</b></a>&nbsp;";
}
if( $page != $totalPages ) echo "&nbsp;&nbsp;<a href=\"$PHP_SELF?idcat=$idcat&page=$nextPage\">Sig uiente</a>&nbsp;";
if ( $initresult + $maxresult > $totalresult ) {
$tope = $totalresult;
} else {
$tope = $initresult + $maxresult;
}
?>
<?php
$tabla = $dbPref."fotosbolichescat";
$consulta = mysql_query ("SELECT * FROM $tabla WHERE idcat = '$idcat' ") or error (mysql_error() ) ;
$renglon = mysql_fetch_array( $consulta );
?>
&nbsp;&nbsp; [ <?php echo $initresult + 1 ?> a <?php echo $tope ?> de <?php echo $totalresult ?> Fotos de <?php echo $renglon[categoria] ?> ]</p>
</td>
</tr>
</table>
<?php } ?>

bueno te explico un poco este ultimo script... es que lo saque tal cual esta de uno mio.
el $idcat del ejemplo que te pongo es el id que vos tenes que poner, digamos el id de la tabla que estes consultando... el id unico e irrepetible.

bueno, ahi tambien te daras cuenta que yo hago una consulta y todo lo demás básico, bueno, eso lo cambias por tus datos y listo.

Esto no termino aca, sino que sigue lo más importante, digamos que es la consulta principal... que es la que difine el LIMIT en la consulta.

Cuando haces la consulta y a veces usabas la funcion LIMIT, bueno, obviala. Y tambien, cuando hagas la consulta, (estoy hablando de la pagina que queres que tenga el paginador, no con los ejemplos de arriba). Lo tenes que hacer sin la funcion mysql_query... bueno, por si no se me entendio nada, te dejo el ejemplo.

pagina_donde_muestro_los_resultados.php //que nombre, no?

<?php
$tabla = $dbPref."fotosboliche";
$consulta = "SELECT * FROM $tabla WHERE idcat = '$idcat' ORDER BY `idfoto` DESC ";
require ("paginas-fotos.php"); //mira aca, estoy llamando al script que hicimos arriba
//despues aca le haces un while normal, definis el mysql_fetch_array con el $consulta como si fuera todo normal...

Nota: fijate ahora que en $consulta no tiene el mysql_query que es lo que te explicaba arriba.

Ultimo paso:

adonde queres que te muestre el paginador: "1" "2" "3" Siguiente, o diferente... tenes que incluir en el lugar de la pagina que desees...

haciendo: <?php require ("paginas-fotos-muestra.php") ?>



Bueno, espero que se haya entendido, si tenes alguna otra duda, solo hacela, te ayudaremos en lo posible, ya que a mi me ayudaron tanto, yo quiero devolver eso...

Saludos y felices fiestas...
__________________
Ignacio