Foros del Web » Programando para Internet » PHP »

Paginar resultados

Estas en el tema de Paginar resultados en el foro de PHP en Foros del Web. Hola estoy utilizando un script para paginar una consulta que he exo a la BD y me gustaría saber como podría poner el siguiente codigo ...
  #1 (permalink)  
Antiguo 23/04/2007, 16:55
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Paginar resultados

Hola estoy utilizando un script para paginar una consulta que he exo a la BD y me gustaría saber como podría poner el siguiente codigo sobre ese script.

Código:
<td nowrap="nowrap"><a href=\"productosv.php?id=<? echo $reg["id"]; ?>\">Ver</a><span class="textobold">|</span><a href=\"productosm.php?id=<? echo $reg["id"]; ?>\">Modificar</a><span class="textobold">|</span><a href=\"productos_actione.php?estado=off&id=<? echo $reg["id"]; ?>\">Papelera</a></td>
Sobre el script este que es de paginar:

Código PHP:
    <?
    $resultados 
mysql_query("SELECT * FROM productos WHERE visible = 1");
    
$total_registros mysql_num_rows($resultados); 
    
$resultados mysql_query("SELECT * FROM productos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros");    
    
$total_paginas ceil($total_registros $registros);                       

    if(
$total_registros) {
    
        while(
$producto=mysql_fetch_array($resultados)) {
            
            echo 
"<td nowrap='nowrap'>".$producto["referencia"]."</td>";
            echo 
"<td nowrap='nowrap'>".$producto["nombre"]."</td>";
            echo 
"<td nowrap='nowrap'>".$producto["precio"]."</td>";
            echo 
"<td nowrap='nowrap'>".$producto["precio"]."</td>";
            
            
        }
        
    } else {
        echo 
"<font color='darkgray'>(sin resultados)</font>";
    }
    
    
mysql_free_result($resultados);                
    
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='productos.php?pagina=".($pagina-1)."'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i) {
                echo 
"<b>".$pagina."</b> "
            } else {
                echo 
"<a href='productos.php?pagina=$i'>$i</a> "
            }    
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='productos.php?pagina=".($pagina+1)."'>Siguiente ></a>";
        }
        
        echo 
"</center>";
        
    }
    
?>
  #2 (permalink)  
Antiguo 23/04/2007, 22:01
 
Fecha de Ingreso: diciembre-2005
Ubicación: San Blas, Nayarit
Mensajes: 45
Antigüedad: 18 años, 4 meses
Puntos: 1
Re: Paginar resultados

te faltan las variables

$inicio
y
$registros..

$registros es para el numero de registros que tu quieres.. de preferencia no uses la variable como cadena.. si no numerica

ej:
<?
$registros=10;
?>

$inicio es la ke hace el inicio de los registros.. es decir.. desde ke id va a empezar a mostrarlos.. para eso se hace asi

este if.. hace ke de valor a la variable si existe la variable get de pagina

if($pagina) {
$inicio = $registros*($pagina-1);
}
else {
$inicio = 0;
$pagina = 1;
}

saludos! =)
  #3 (permalink)  
Antiguo 23/04/2007, 22:46
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: Paginar resultados

solo como nota tambien puedes hecharle un ojo al paginador de jpinedo
saludos
__________________
gerardo
  #4 (permalink)  
Antiguo 24/04/2007, 00:10
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Paginar resultados

Gracias makesurfer, ese codigo ya lo tenia en el script esque no lo puse completo.
Pero yo queria añadir :
Código:
<td nowrap="nowrap"><a href=\"productosv.php?id=<? echo $producto["id"]; ?>\">Ver</a><span class="textobold">|</span><a href=\"productosm.php?id=<? echo $producto["id"]; ?>\">Modificar</a><span class="textobold">|</span><a href=\"productos_actione.php?estado=off&id=<? echo $producto["id"]; ?>\">Papelera</a></td>
al echo pero no recuerdo muy bien como puedo hacerlo con enlaces y tal y como puse estos:

Código PHP:
echo "<td nowrap='nowrap'>".$producto["precio"]."</td>"
  #5 (permalink)  
Antiguo 24/04/2007, 11:46
 
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 319
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Paginar resultados

Bueno creo que ya he solucionado la primera cuestion que tenia... y el script completo que tengo puesto es el siguiente:

Código PHP:
<?
function conectar() 

    
$base_de_datos "xxx";
    
$db_usuario "xxx"
    
$db_password "xxx"
   
    if (!(
$link mysql_connect("localhost"$db_usuario$db_password))) 
    { 
        echo 
"Error conectando a la base de datos."
        exit(); 
    } 
    if (!
mysql_select_db($base_de_datos$link)) 
    { 
        echo 
"Error seleccionando la base de datos."
        exit(); 
    } 
    return 
$link


$db conectar();

$registros 3;

if (!
$pagina) { 
    
$inicio 0
    
$pagina 1

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



?>
<?
    $resultados 
mysql_query("SELECT * FROM productos WHERE visible = 1");
    
$total_registros mysql_num_rows($resultados); 
    
$resultados mysql_query("SELECT * FROM productos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros");    
    
$total_paginas ceil($total_registros $registros);                       

    if(
$total_registros) {
    
        while(
$producto=mysql_fetch_array($resultados)) {
            
            echo 
"<td nowrap='nowrap'>".$producto["referencia"]."</td>";
            echo 
"<td nowrap='nowrap'>".$producto["nombre"]."</td>";
            echo 
"<td nowrap='nowrap'>".$producto["precio"]."</td>";
            echo 
"<td nowrap='nowrap'>".$producto["precio"]."</td>";
            echo 
"<td nowrap='nowrap'><a href='productosv.php?id=".$producto["id"]."'>Ver</a><span class='textobold'>|</span><a href='productosm.php?id=".$producto["id"]."'>Modificar</a><span class='textobold'>|</span><a href='productos_actione.php?estado=off&id=".$producto["id"]."'>Papelera</a></td>";
        }
        
    } else {
        echo 
"<font color='darkgray'>(sin resultados)</font>";
    }
    
    
mysql_free_result($resultados);                
    
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='productos.php?pagina=".($pagina-1)."'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i) {
                echo 
"<b>".$pagina."</b> "
            } else {
                echo 
"<a href='productos.php?pagina=$i'>$i</a> "
            }    
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='productos.php?pagina=".($pagina+1)."'>Siguiente ></a>";
        }
        
        echo 
"</center>";
        
    }
    
?>

<? mysql_close($db);?>
Pero me da el siguiente error:
Código:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/gekuar/public_html/toni/admin/productos.php on line 82
(sin resultados)
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/gekuar/public_html/toni/admin/productos.php on line 101
A que puede deberse?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:05.