Problema con paginacion PHP/MySQL

Iniciado por camdark, 13 Diciembre 2006, 05:44 AM

0 Miembros y 1 Visitante están viendo este tema.

camdark

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!

Rk_PetIT

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.... ;)

se piensa una cosa y se dice otra...