Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/09/2010, 08:48
leafartn
 
Fecha de Ingreso: septiembre-2010
Ubicación: colombia
Mensajes: 45
Antigüedad: 14 años, 1 mes
Puntos: 0
paginacion consultas mysql

Hola! estoy paginando una consulta en mysql, ya casi tengo todo listo, esta paginandome y arreglando el numero de paginas esta mostrando correctamente la consulta, el problema lo estoy teniendo en la parte del desplazamiento: Primero, Siguiente y Ultimo no aparecen como si fueran links, osea que aparece el texto pero no peudo hacer clic en el para que me muestre las otras paginas de mi tabla

el javascript es el siguiente:
Código PHP:
function objetoAjax(){
 var 
xmlhttp=false;
  try{
   
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }catch(
e){
   try {
    
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }catch(
E){
    
xmlhttp false;
   }
  }
  if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
   
xmlhttp = new XMLHttpRequest();
  }
  return 
xmlhttp;
}

function 
Pagina(nropagina,fecha1,fecha2,userfield){
 
divContenido document.getElementById('contenido4');
 
 
ajax=objetoAjax();
 
ajax.open("GET""paginador.php?pag="+nropagina+"&fecha1="+fecha1+"&fecha2="+fecha2+"&usefield="+userfield);
 
divContenido.innerHTML'<img src="anim.gif">';
 
ajax.onreadystatechange=function() {
  if (
ajax.readyState==4) {
   
divContenido.innerHTML ajax.responseText
  
}
 }
 
ajax.send(null)


y el codigo de Paginador.php es el siguiente:
Código PHP:
<?php

//lamando a la clase de conexion a la base de datos
include("ConexionMYSQL.php");  //clase

$db = new MySQL();    //instanciandola

$userfield $_GET[userfield];
//Capturo las variables de entrada de fecha para la paginacion
$fecha1 =$_GET[fecha1];
$fecha2 =$_GET[fecha2];


$RegistrosAMostrar=30;

//estos valores los recibo por GET
if(isset($_GET['pag'])){
    
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
    
$PagAct=$_GET['pag'];
//caso contrario los iniciamos
}else{
    
$RegistrosAEmpezar=0;
    
$PagAct=1;
    
}

echo 
"FECHA 1 = ".$fecha1." --- fecha2= ".$fecha2." --- userfield = ".$userfield." --- pagina actual = ".$PagAct;

$Resultado=mysql_query("SELECT * FROM cdr where date_format(calldate,'%Y-%m-%d') between  '$fecha1' and '$fecha2' and userfield like '%".$userfield."%' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar");


//miro a ver el número total de campos que hay en la tabla con el select
$rs mysql_query("SELECT * FROM cdr where date_format(calldate,'%Y-%m-%d') between  '$fecha1' and '$fecha2' and userfield like '%".$userfield."%' "); 
$num_total_registros mysql_num_rows($rs); 

echo 
"&nbsp&nbsp Registros =".$num_total_registros;

if (
mysql_num_rows($rs)) 
        {
            
//echo "<table border = '1'> \n";
            
echo "<table border = '1' id=myTable > \n";
            print 
'<TR align="center">'
            print 
'<TH><font size=1>CALLDATE</font></TH>'
            print 
'<TH><font size=1>CLID</font></TH>'
            print 
'<TH><font size=1>SRC</font></TH>'
            print 
'<TH><font size=1>DST</font></TH>'
            print 
'<TH><font size=1>DCONTEXT</font></TH>'
            print 
'<TH><font size=1>CHANNEL</font></TH>'
            print 
'<TH><font size=1>DSTCHANNEL</font></TH>'
            print 
'<TH><font size=1>LASTAPP</font></TH>'
            print 
'<TH><font size=1>LASTDATA</font></TH>';
            print 
'<TH><font size=1>DURATION</font></TH>'
            print 
'<TH><font size=1>BILLSEC</font></TH>';
            print 
'<TH><font size=1>DISPOSITION</font></TH>'
            print 
'<TH><font size=1>AMAFLAGS</font></TH>'
            print 
'<TH><font size=1>ACCOUNTCODE</font></TH>'
            print 
'<TH><font size=1>USERFIELD</font></TH>'
            print 
'<TH><font size=1>UNIQUEID</font></TH>';
            print 
'</TR> ';  
         
            while(
$fila=mysql_fetch_array($Resultado))
            {
                print 
'<TR align="center">';
                echo 
"<td ><font size=1>".$fila['calldate']."</font></td>";
                echo 
"<td><font size=1>".$fila['clid']."</font></td>";
                echo 
"<td><font size=1>".$fila['src']."</font></td>";
                echo 
"<td><font size=1>".$fila['dst']."</font></td>";
                echo 
"<td><font size=1>".$fila['dcontext']."</font></td>";
                echo 
"<td><font size=1>".$fila['channel']."</font></td>";
                echo 
"<td><font size=1>".$fila['dstchannel']."</font></td>";
                echo 
"<td><font size=1>".$fila['lastapp']."</font></td>";
                echo 
"<td><font size=1>".$fila['lastdata']."</font></td>";
                echo 
"<td><font size=1>".$fila['duration']."</font></td>";
                echo 
"<td><font size=1>".$fila['billsec']."</font></td>";
                echo 
"<td><font size=1>".$fila['disposition']."</font></td>";
                echo 
"<td><font size=1>".$fila['amaflags']."</font></td>";
                echo 
"<td><font size=1>".$fila['accountcode']."</font></td>";
                echo 
"<td><font size=1>".$fila['userfield']."</font></td>";
                echo 
"<td><font size=1>".$fila['uniqueid']."</font></td>";
                print 
'</TR>'
            }
            echo 
"</table>";
        }
//******--------determinar las páginas---------******//
$NroRegistros=$num_total_registros;

$PagAnt=$PagAct-1;
$PagSig=$PagAct+1;
$PagUlt=$NroRegistros/$RegistrosAMostrar;

//verificamos residuo para ver si llevará decimales
$Res=$NroRegistros%$RegistrosAMostrar;
// si hay residuo usamos funcion floor para que me
// devuelva la parte entera, SIN REDONDEAR, y le sumamos
// una unidad para obtener la ultima pagina
if($Res>0$PagUlt=floor($PagUlt)+1;

//desplazamiento
echo "<a onclick=\"Pagina('1',$fecha1,$fecha2,$userfield)\">Primero</a> ";
if(
$PagAct>1) echo "<a onclick=\"Pagina($PagAnt,$fecha1,$fecha2,$userfield)\">Anterior</a> ";
echo 
"<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
if(
$PagAct<$PagUlt)  echo " <a onclick=\"Pagina($PagSig,$fecha1,$fecha2,$userfield)\">Siguiente</a> ";
echo 
"<a onclick=\"Pagina($PagUlt,$fecha1,$fecha2,$userfield)\">Ultimo</a>";
?>
creo que el error de los enlcaes para cambiar de pagina esta en la ultima parte... per yo no se mucho de html, asi que corrijanme si estoy equivocado

P.D
corrigiendo eso, la paginacion funciona 100% asi que pueden copiar el codigo si lo desean, es facil de implementar

Gracias!!!!