Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: camdark en 13 Diciembre 2006, 05:44 AM

Título: Problema con paginacion PHP/MySQL
Publicado por: camdark en 13 Diciembre 2006, 05:44 AM
Hola amigos,

He creado este sencillo codigo que pagina resultados, pero aun no he podido hacer para que la primera pagina lleve un link de "pagina=1" hasta el momento solo puedo hacerlo asi "pagina=0" y asi sucesivamente con las otras paginas, he buscado otros codigos de paginacion y todos tenemos el mismo problema :(, aca va mi codigo:

<?php
//conexion mysql
@mysql_connect("localhost""root""") or die ("Imposible conectar a la BD.");
@
mysql_select_db("paginacion") or die ("Imposible seleccionar la BD.");

//consultas a la base de datos
if (!isset($_GET['pagina'])) {$pagina 0;} else {$pagina $_GET['pagina'];}
$cantidad 5;
$inicial $pagina $cantidad;

$q1 mysql_query("SELECT id,titulo FROM articulos LIMIT $inicial,$cantidad");
$q3 mysql_query("SELECT id FROM articulos");
$q2 mysql_num_rows($q3);
$total ceil($q2/$cantidad);

//imprimimos los registros
while ($var mysql_fetch_array($q1)) {echo "$var[id] | $var[titulo]<br>";}

//enlaces a las paginas
for ($i 1$i <= $total$i++) {$i2 $i 1; if ($i2 == $pagina) {echo "$i";} else {echo "<a href='paginacion.php?pagina=$i2'>$i</a> ";}}
?>


Espero que me puedan ayudar amigos, saludos.

// Nota del moderador: USAR LAS ETIQUETAS DE CÓDIGO!
Título: Re: Problema con paginacion PHP/MySQL
Publicado por: Rk_PetIT en 14 Diciembre 2006, 20:01 PM
Este es mi codigo espero que te sirva...

<?php
//Limito la busqueda 
$TAMANO_PAGINA 10

//examino la página a mostrar y el inicio del registro a mostrar 
$pagina $_GET["pagina"]; 
if (!
$pagina) { 
    
$inicio 0
    
$pagina=1

else { 
    
$inicio = ($pagina 1) * $TAMANO_PAGINA

//miro a ver el número total de campos que hay en la tabla con esa búsqueda 
$ssql "select * from pais " $criterio
$rs mysql_query($ssql,$conn); 
$num_total_registros mysql_num_rows($rs); 
//calculo el total de páginas 
$total_paginas ceil($num_total_registros $TAMANO_PAGINA); 

//pongo el número de registros total, el tamaño de página y la página que se muestra 
echo "Número de registros encontrados: " $num_total_registros "<br>"
echo 
"Se muestran páginas de " $TAMANO_PAGINA " registros cada una<br>"
echo 
"Mostrando la página " $pagina " de " $total_paginas "<p>"
//construyo la sentencia SQL 
$ssql "select * from pais " $criterio " limit " $inicio "," $TAMANO_PAGINA
$rs mysql_query($ssql); 
while (
$fila mysql_fetch_object($rs)){ 
    echo 
$fila->nombre_pais "<br>"

//cerramos el conjunto de resultado y la conexión con la base de datos 
mysql_free_result($rs); 
mysql_close($conn); 

//muestro los distintos índices de las páginas, si es que hay varias páginas 
if ($total_paginas 1){ 
    for (
$i=1;$i<=$total_paginas;$i++){ 
       if (
$pagina == $i
          
//si muestro el índice de la página actual, no coloco enlace 
          
echo $pagina " "
       else 
          
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página 
          
echo "<a href='index.php?pagina=" $i "&criterio=" $txt_criterio "'>" $i "</a> "
    } 

?>



Ahora.. yo ele eh agregado un pequeño buscador..
te dejo el codigo por cualquier cosa....

<form action="index.php" method="get">
Criterio de búsqueda:
<input type="text" name="criterio" size="22" maxlength="150">
<input type="submit" value="Buscar">
</form>
<?php
//inicializo el criterio y recibo cualquier cadena que se desee buscar 
$criterio ""
if (
$_GET["criterio"]!=""){ 
    
$txt_criterio $_GET["criterio"]; 
    
$criterio " where nombre_pais like '%" $txt_criterio "%'"

?>



Espero que te sirva...

Saludos.... ;)