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: 16 años, 8 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$rowextrue ) );
}
$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: 16 años
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: 16 años, 8 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: 16 años
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: 16 años, 8 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 $arriba
     if(
$pag==$links-1)$abajo $pag $arriba
     if(
$pag==$links)$abajo $pag $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: 16 años
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: 16 años, 8 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: 16 años
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: 16 años, 8 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: 16 años, 8 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 $arriba
     if(
$pag==$links-1)$abajo $pag $arriba
     if(
$pag==$links)$abajo $pag $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 19:21.