Foros del Web » Programando para Internet » PHP »

Sistema no pagina

Estas en el tema de Sistema no pagina en el foro de PHP en Foros del Web. saludos muchachos... tngo un problema.. estoy haciendo una paginacion y no me hace el conteo es decir no me pagina le coloque de limite 3 ...
  #1 (permalink)  
Antiguo 04/06/2008, 15:52
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 19 años, 2 meses
Puntos: 28
Sistema no pagina

saludos muchachos... tngo un problema.. estoy haciendo una paginacion y no me hace el conteo es decir no me pagina le coloque de limite 3 resultados por pagina pero no lo hace aqui les dejo el codigo

Código PHP:
<?php    
include ('conect.php');   
 
//tamaño de la pagina 
    
$tamPag=3; 

    
//pagina actual si no esta definida y limites 
    
if(!isset($_GET["pagina"])) 
    { 
       
$pagina=1; 
       
$inicio=1; 
       
$final=$tamPag; 
    }else{ 
       
$pagina = $_GET["pagina"]; 
    } 
    
//calculo del limite inferior 
    
$limitInf=($pagina-1)*$tamPag; 

    
//calculo del numero de paginas 
    
$numPags=ceil($numeroRegistros/$tamPag); 
    if(!isset(
$pagina)) 
    { 
       
$pagina=1; 
       
$inicio=1; 
       
$final=$tamPag; 
    }else{ 
       
$seccionActual=intval(($pagina-1)/$tamPag); 
       
$inicio=($seccionActual*$tamPag)+1; 

       if(
$pagina<$numPags) 
       { 
          
$final=$inicio+$tamPag-1; 
       }else{ 
          
$final=$numPags; 
       } 

       if (
$final>$numPags){ 
          
$final=$numPags; 
       } 
    } 


$sqlex="SELECT cedula, COUNT(*) AS total, SUM(monto) AS suma FROM factura GROUP BY cedula";
$sql_execex=mysql_query($sqlex) or die("Error en consulta: $sql_execex, error: ". mysql_error());
while(
$rowex=mysql_fetch_assoc($sql_execex))   
{    
$cedula = $rowex['cedula'];
if( empty( 
$cedula ) ) {
        die( 
"no existe el registro: $cedula, datos: " . print_r( $rowex, true ) );
}
$sqlexz="SELECT * FROM clientes WHERE cedula='$cedula' ORDER BY id ASC LIMIT " .$limitInf.",".$tamPag ; 
$sql_execexz=mysql_query($sqlexz) or die( "Error en consulta: $sqlexz, error: " . mysql_error());  
$numeroRegistros=mysql_num_rows($sql_execexz); 
$datoscli = mysql_fetch_assoc( $sql_execexz );
?>  

<table width="955" border="0" cellspacing="0" cellpadding="0">   
  <tr>   
    <td><table width="200" border="1" bgcolor="#999999">   
      <tr>   
        <td width="80" bgcolor="#FFFFFF"><?php echo $rowex['suma']; ?></td>   
          <td width="80" bgcolor="#FFFFFF"><?php echo $rowex['total']; ?></td>   
          <td width="40" bgcolor="#FFFFFF"><?php echo $datoscli['nombre']; ?></td>   
        </tr>  
      </table>  
      <?php }?>      
      <p>&nbsp;</p> 
      <table width="200" border="1">
        <tr>
          <td><br> 
    <table border="0" cellspacing="0" cellpadding="0" align="center"> 
    <tr><td align="center" valign="top"> 
<? 
    
if($pagina>1) 
    { 
       echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'>"; 
       echo 
"<font face='verdana' size='-2'>anterior</font>"; 
       echo 
"</a> "; 
    } 

    for(
$i=$inicio;$i<=$final;$i++) 
    { 
       if(
$i==$pagina) 
       { 
          echo 
"<font face='verdana' size='-2'><b>".$i."</b> </font>"; 
       }else{ 
          echo 
"<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_criterio."'>"; 
          echo 
"<font face='verdana' size='-2'>".$i."</font></a> "; 
       } 
    } 
    if(
$pagina<$numPags) 
   { 
       echo 
" <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criterio=".$txt_criterio."'>"; 
       echo 
"<font face='verdana' size='-2'>siguiente</font></a>"; 
   } 
//////////fin de la paginacion 
?> 
</td>
        </tr>
      </table>      
    <p>&nbsp;</p></td>   
  </tr>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 04/06/2008, 15:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 18 años, 6 meses
Puntos: 2534
Respuesta: Sistema no pagina

te recomiendo no usar como segundo parámetro de LIMIT un numero basado en un calculo cualquiera....

con solo aumentar el primer valor de LIMIT y dejando intacto el segundo (a menos que sea configurable) deberias bastar.... eso lo he echo, y asi es....

... "LIMIT $desde, $cuantos"

siendo $desde el numero de pagina actual... y $cuantos el numero de resultados
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/06/2008, 07:35
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 19 años, 2 meses
Puntos: 28
Respuesta: Sistema no pagina

okas... seguire tu consejo.. gracias :)

mi consulta quedaria asi?
Código PHP:
$sqlexz="SELECT * FROM clientes WHERE cedula='$cedula' ORDER BY id ASC LIMIT " .$pagina.",".$tamPag ; 
$sql_execexz=mysql_query($sqlexz) or die( "Error en consulta: $sqlexz, error: " . mysql_error());  
$numeroRegistros=mysql_num_rows($sql_execexz); 
$datoscli = mysql_fetch_assoc( $sql_execexz ); 
pero sigue sin paginar..
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...

Última edición por T4ke0veR; 05/06/2008 a las 07:41
  #4 (permalink)  
Antiguo 05/06/2008, 07:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 18 años, 6 meses
Puntos: 2534
Respuesta: Sistema no pagina

mira... este es un ejemplo sencillo de paginacion

Código PHP:
$pag = isset($_GET['pag'])? $_GET['pag']: 0;

$sql = 'SELECT * FROM tabla LIMIT '.$pag.',10'; // OK
$query = mysql_query($sql);
$num = mysql_num_rows($query);

while (
$row = mysql_fetch_array($query))
{
  echo 
$row[0].'<br />'; // etc, etc...
}

// el paginado (los enlaces) se basa en el limite x,10

for ($i = 0; $i < $num; $i+=10)
{
  echo 
' <a href="?pag='.$i.'">Pagina '.($i+1).'</a> ';
} 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 05/06/2008, 08:32
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 19 años, 2 meses
Puntos: 28
Respuesta: Sistema no pagina

ok perfect... fijate... use este... pero tiene algo extraño
cuando aunmento la variable $hasta a mas de 2 resultados no funciona correctamente
si hago
$hasta = 2; funciona perfecto
si hago
$hasta = 3; o mas valores me pagina de una manera muy extraña!!!!

Código PHP:
<?php 
function conectar($host,$user,$pass,$db){ 
$link = @mysql_connect($host,$user,$pass) or die("Error Conectando a la Base de datos"); 
@
mysql_select_db($db,$link) or die("Error Seleccionando base de datos."); 
return 
$link; 
} 

$host = "localhost"; 
$user = "indexa_admin"; 
$pass = "123456"; 
$db = "indexa_pintor"; 

$link = conectar($host,$user,$pass,$db); 

$tabla = "factura"; 

$rsC = mysql_query("Select count(*) from ".$tabla); 
$resultC = mysql_fetch_array($rsC); 
$count = $resultC[0]; 

$hasta = 8; 

if(
$pag==""){ 
 
$desde = 0; 
 
$pag = 1;     
} 
else{ 
 
$pag = $_GET["pag"]; 
 
$pagS = $pag - 1; 
 
$desde = $hasta * $pagS;     
} 

$rs = mysql_query("select * from ".$tabla." limit $desde,$hasta"); 
if(
$count!=0){ 
 while(
$result=mysql_fetch_array($rs)){ 
  echo 
$result["cedula"]."<br>\n";     

 } 
} 
else{ 
 echo 
"No tenemos registros.";     
} 
mysql_close($link); 

$link_totales = 4; 
paginar($count,$hasta,$pag,$link_totales,$extra_variables); 

function 
paginar($count,$hasta,$pag,$link_totales,$extra_variables){ 
    if(
$link_totales==1)$link_totales=2; 
    
$links = $count / $hasta; 
    
$arriba = $link_totales - 2; 
    
$abajo = $pag - 1; 
    if(
$abajo==0)$abajo = 1; 
    
$temp_r = $links - $pag; 
    if(
$temp_r>=$arriba){ 
     
$link_break = $pag + $arriba; 
    } 
    else{ 
     
$link_break = $links; 
     
$abajo = $pag + 1 - $arriba; 
     if(
$pag==$links-1)$abajo = $pag - $arriba; 
     if(
$pag==$links)$abajo = $pag - 1 - $arriba; 
    } 
     
    if(
$pag==1)$link_break = $link_totales; 
    if(
$abajo==0)$abajo=1; 
    if(
strlen($extra_variables)!=0) $extra_variables = "&".$extra_variables; 
     
    if(
$pag==1){ 
     
$anterior = 1;     
    } 
    else{ 
    
$anterior = $pag - 1;     
    } 
    if(
$pag!=1){ 
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>"; 
    } 
     
    for(
$i=$abajo;$i<=$links;$i++){ 
     if(
$link_break<$i){ 
      break; 
     } 
     else{ 
        if(
$pag==$i){ 
        echo 
$i." | ";     
        } 
        else{ 
        echo 
"<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>"; 
        echo 
$i; 
        echo 
" | </a>"; 
        } 
     } 
    } 
    if(
$pag==$links){ 
    
$siguiente = $links; 
    } 
    else{ 
    
$siguiente = $pag + 1; 
    } 
    if(
$pag!=$links){ 
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguiente >></a>"; 
    } 
} 
?>
con 8 resultados
http://indexa.com.ve/latiendadelpint...in/prueba3.php

con 2 resultados
http://indexa.com.ve/latiendadelpint...in/prueba4.php

con 5 resultados
http://indexa.com.ve/latiendadelpint...in/prueba5.php
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 05/06/2008, 08:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 18 años, 6 meses
Puntos: 2534
Respuesta: Sistema no pagina

creo que esto lo que sucede....

Código PHP:
$pag = $_GET["pag"]; 
 
$pagS = $pag - 1;

// $pagS no debe estar en calculo a la variable $desde
// sino en base a $count / $cuantos

// si te das cuenta, hasta... NO significa cuantos....
// implica desde el indice hacia... $hacia

// siendo $cuantos una como "constante" la configurable...
// $hacia = $desde+($count/$cuantos)

 
$desde = $hasta * $pagS; 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 05/06/2008, 08:55
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 19 años, 2 meses
Puntos: 28
Respuesta: Sistema no pagina

emmmm llamame bruto, animal, lo q sea man pero creo q no t entendi...
pq pagS no debe estar donde dice??? pq va al count???...
quede chino, a penas aprendo jeje!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #8 (permalink)  
Antiguo 05/06/2008, 09:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 18 años, 6 meses
Puntos: 2534
Respuesta: Sistema no pagina

primero debes definir... cuantos resultados por pagina, o mas bien... cuantas paginas quieres

en base a esto... defino $cuantos

Código PHP:
// suponiendo que quieres 10 paginas, x resultados por pag.
$cuantos = $count / 10; 

// suponiendo que quieres 10 resultados por pagina
$cuantos = 10;

if(!isset(
$_GET["pag"]) || $_GET["pag"] == ''){ 
 
$desde = 0; 
 
$pag = 1;
} 
else{ 
 
$pag = $_GET["pag"]; 
// $pagS = $pag - 1; 
 
$desde = $pag * $cuantos;
}  

 
$hasta = $desde + $cuantos; 

espero sea claro... sino, tendre que copiar y alterar tu codigo... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 05/06/2008, 09:44
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 19 años, 2 meses
Puntos: 28
Respuesta: Sistema no pagina

OMG jejejeje.. ahora me pagina para atras....
http://indexa.com.ve/latiendadelpint...in/prueba5.php

voy a leerme el codigo completo a ver y t cuento ....
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #10 (permalink)  
Antiguo 05/06/2008, 11:12
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 19 años, 2 meses
Puntos: 28
Respuesta: Sistema no pagina

ok continuo... modifique el codigo y me pagina en retroceso >.<

Código PHP:
<?php 
function conectar($host,$user,$pass,$db){ 
$link = @mysql_connect($host,$user,$pass) or die("Error Conectando a la Base de datos"); 
@
mysql_select_db($db,$link) or die("Error Seleccionando base de datos."); 
return 
$link; 
} 

$host = "localhost"; 
$user = "indexa_admin"; 
$pass = "123456"; 
$db = "indexa_pintor"; 

$link = conectar($host,$user,$pass,$db); 

$tabla = "factura"; 

$rsC = mysql_query("Select count(*) from ".$tabla); 
$resultC = mysql_fetch_array($rsC); 
$count = $resultC[0]; 

$cuantos = $count / 10; 
$cuantos = 10;

if(!isset(
$_GET["pag"]) || $_GET["pag"] == ''){ 
 
$desde = 0; 
 
$pag = 1;
} 
else{ 
 
$pag = $_GET["pag"]; 
// $pagS = $pag - 1; 
 
$desde = $pag * $cuantos;
}  

 
$hasta = $desde + $cuantos;
    

$rs = mysql_query("select * from ".$tabla." limit $desde,$hasta"); 
if(
$count!=0){ 
 while(
$result=mysql_fetch_array($rs)){ 
  echo 
$result["cedula"]."<br>\n";     

 } 
} 
else{ 
 echo 
"No tenemos registros.";     
} 
mysql_close($link); 

$link_totales = 4; 
paginar($count,$desde,$pag,$link_totales,$extra_variables); 

function 
paginar($count,$desde,$pag,$link_totales,$extra_variables){ 
    if(
$link_totales==1)$link_totales=2; 
    
$links = $count / $hasta; 
    
$arriba = $link_totales - 2; 
    
$abajo = $pag - 1; 
    if(
$abajo==0)$abajo = 1; 
    
$temp_r = $links - $pag; 
    if(
$temp_r>=$arriba){ 
     
$link_break = $pag + $arriba; 
    } 
    else{ 
     
$link_break = $links; 
     
$abajo = $pag + 1 - $arriba; 
     if(
$pag==$links-1)$abajo = $pag - $arriba; 
     if(
$pag==$links)$abajo = $pag - 1 - $arriba; 
    } 
     
    if(
$pag==1)$link_break = $link_totales; 
    if(
$abajo==0)$abajo=1; 
    if(
strlen($extra_variables)!=0) $extra_variables = "&".$extra_variables; 
     
    if(
$pag==1){ 
     
$anterior = 1;     
    } 
    else{ 
    
$anterior = $pag - 1;     
    } 
    if(
$pag!=1){ 
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>"; 
    } 
     
    for(
$i=$abajo;$i<=$links;$i++){ 
     if(
$link_break<$i){ 
      break; 
     } 
     else{ 
        if(
$pag==$i){ 
        echo 
$i." | ";     
        } 
        else{ 
        echo 
"<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>"; 
        echo 
$i; 
        echo 
" | </a>"; 
        } 
     } 
    } 
    if(
$pag==$links){ 
    
$siguiente = $links; 
    } 
    else{ 
    
$siguiente = $pag + 1; 
    } 
    if(
$pag!=$links){ 
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguiente >></a>"; 
    } 
} 
?>
http://indexa.com.ve/latiendadelpint...in/prueba5.php

..... SOS .....
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
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 04:23.