Foros del Web » Programando para Internet » PHP »

Problema paginar resultados en PHP

Estas en el tema de Problema paginar resultados en PHP en el foro de PHP en Foros del Web. Hola a Todos/das. Tengo un problemilla, estoy intentando paginar los resultados de una consulta a una DB, en principio deberia mostrar de 4 en 4 ...
  #1 (permalink)  
Antiguo 22/03/2012, 13:20
 
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 12 años, 1 mes
Puntos: 0
Exclamación Problema paginar resultados en PHP

Hola a Todos/das.

Tengo un problemilla, estoy intentando paginar los resultados de una consulta a una DB, en principio deberia mostrar de 4 en 4 los productos ACTIVOS (activo = 1). Pero me falla, el problema esta en que si desactivo el rpoducto o lo borro me sigue apareciendo una página más como si este aun fuese operativo.


PARTE 1:

Código PHP:
<? 
// COMIENZA SCRIPT DE PAGINACION
$cadavez 4;

$pagina=$_GET["pagina"];

$pagina = @(int)$pagina;

if (
$pagina OR !$pagina) {
    
$pagina 1;
}
$id_scategoria=$_GET["id_scategoria"];
$id_seccion=$_GET["id_seccion"];

if (isset(
$id_seccion)){

//hay secciones
    
$sql "SELECT count(id) as n_registros FROM productos_datos WHERE id_categoria = ".$id_scategoria." and id_seccion=".$id_seccion;    
}else{    
    
$sql "SELECT count(id) as n_registros FROM productos_datos WHERE id_categoria =".$id_scategoria;
}

$result mysql_query($sql);
$line mysql_fetch_array($result);

$cuantos $line['n_registros'];

$paginas ceil($cuantos $cadavez);


//////////////////////////////////////////


//Programo el retroceso de las categorias

 
if ($paginas 0) {
 if ((
$pagina 1) AND ($id_seccion 0)) {
        
$intermedias .= "<span class=\"pagtxt\"><a class=\"paginacion\" href=\"$PHP_SELF?id_scategoria=$id_scategoria&id_seccion=$id_seccion&pagina=" . ($pagina-1) . "\">&lt;&lt; Anterior</a>";
    }else if ((
$pagina 1) AND ($id_seccion 1)){    
        
$intermedias .= "<span class=\"pagtxt\"><a class=\"paginacion\" href=\"$PHP_SELF?id_scategoria=$id_scategoria&pagina=" . ($pagina-1) . "\">&lt;&lt; Anterior</a>";
    }else{
        
$intermedias .= "<span class=\"pagtxt\">";
    }
        
        
//Programo numeraciones
    
        
for ($n 1$n <= $paginas$n++){
        if (
$n == $pagina){
            
$intermedias .= " [<b>$n</b>] ";
        }else if (
$id_seccion 0){
            
$intermedias .= " [<a class=\"paginacion\" href=\"$PHP_SELF?id_scategoria=$id_scategoria&id_seccion=$id_seccion&pagina=$n\">$n</a>] ";
        }else{
            
$intermedias .= " [<a class=\"paginacion\" href=\"$PHP_SELF?id_scategoria=$id_scategoria&pagina=$n\">$n</a>] ";
        }
    }
        
//Programo el aumento de las categorias
    
if (($paginas 1) AND ($pagina $paginas) AND ($id_seccion 0)) {
        
$intermedias .= "<a class=\"paginacion\" href=\"$PHP_SELF?id_scategoria=$id_scategoria&id_seccion=$id_seccion&pagina=" . ($pagina+1) . "\">Siguiente &gt;&gt;</a></span>";
    }else if ((
$paginas 1) AND ($pagina $paginas) AND ($id_seccion 1)){
        
$intermedias .= "<a class=\"paginacion\" href=\"$PHP_SELF?id_scategoria=$id_scategoria&pagina=" . ($pagina+1) . "\">Siguiente &gt;&gt;</a></span>";
    }else{
        
$intermedias .= "</span>";
    }
  }
  
///////////////////////////////////////////
  
$pagina = ($pagina 1) * $cadavez;
// TERMINA SCRIPT DE PAGINACION
?>
PARTE 2:

Código PHP:
<?
if (isset($id_seccion)){
    
$sql "SELECT p.id, p.id_fabricante, f.link,p.costo, p.nombre, p.desc_corta, p.precioanterior, p.tester, f.nombre as fabricante, p.stock FROM  productos_datos as p , productos_fabr as f WHERE activo AND p.id_categoria = '$id_scategoria' and p.id_seccion= '$id_seccion' and p.id_fabricante = f.id ORDER BY nombre LIMIT $pagina, $cadavez";
}else{                
    
$sql "SELECT p.id, p.id_fabricante, f.link,p.costo, p.nombre, p.desc_corta, p.precioanterior, p.tester, f.nombre as fabricante, p.stock FROM  productos_datos as p, productos_fabr as f WHERE activo AND p.id_categoria = '$id_scategoria' and p.id_fabricante = f.id ORDER BY nombre LIMIT $pagina, $cadavez";
}
$result mysql_query($sql);
if(
$row mysql_fetch_array($result)){
    echo 
"<br><div align=\"center\">" $intermedias "</div><br>";
?>
  #2 (permalink)  
Antiguo 08/04/2012, 04:41
 
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Problema paginar resultados en PHP

Creo que este blog te ayudará en lo que buscas. Espero que te sirva.
http://adictosalcodigo.wordpress.com/2012/03/27/paginacion-con-php/
  #3 (permalink)  
Antiguo 08/04/2012, 05:45
Avatar de wsoul  
Fecha de Ingreso: octubre-2010
Mensajes: 190
Antigüedad: 13 años, 6 meses
Puntos: 13
Respuesta: Problema paginar resultados en PHP

hace poco un usuario puso esto

http://www.forosdelweb.com/f18/aport...on-php-985915/

echale un ojo
__________________
Compra y Vender artículos en https://www.losredactores.com o una comunidad de webmasters ? https://webeamos.com

Etiquetas: mysql, paginar, registro, resultados, sql
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 02:59.