Comunidad de diseño web y desarrollo en internet online

Ayuda con paginación en PHP con base MySQL

Citar            
MensajeEscrito el 03 Feb 2009 03:07 pm
Hola:

Estoy realizando una consulta y necesito que los resultados me los muestre en varias páginas dependiendo de la cantidad de registros que tenga la consulta.
Hasta ahora he logrado hacer que me muestre una sóla pagina porque cuando le doy a la siguiente pagina, me muestra todo en blanco, solo los títulos, es como si el select lo borrara y no se cómo seguir despues de esto. ¿me ayudan?
Este es el código que tengo hasta el momento
<html>
<head>
<title>Resuldato de consulta</title>
</head>
<body>
<h1 align="center" <font size=4 color=blue>Resultado consulta de llamadas por Fecha, Destino y Estado</font></H1>


<?php

//Hago la busqueda según los parametros que introduce el usuario.
$title = 'Busqueda por dia';
$theDate = $_REQUEST['theDate'];
$src = $_REQUEST['src'];

include_once('includes/config.php');
echo "<table border = '2' color=blue> \n";


//Limito la busqueda y examino la página a mostrar y el inicio del registro a mostrar
$TAMANO_PAGINA = 20;
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;
}


//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "SELECT * FROM cdr c WHERE src = '$src' AND substr(calldate,1,10) = '$theDate'";
$rs = mysql_query($ssql);
$num_total_registros = mysql_num_rows($rs);
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);

//pongo el número de registros total, el tamaño de página y la página que se muestra
echo "Numero de registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran paginas de " . $TAMANO_PAGINA . " registros cada una<br>";
echo "Mostrando la pagina " . $pagina . " de " . $total_paginas . "<p>";


// Query para consulta a base de datos
$result = mysql_query("SELECT substr(calldate,1,10), substr(calldate,12,18), src, dst, duration, IF(STRCMP(disposition,'ANSWERED'),' ','ANSWERED'),
IF(STRCMP(disposition,'NO ANSWER'),' ','NO ANSWER'), IF(STRCMP(disposition,'FAILED'),' ','FAILED'), IF(STRCMP(disposition,'BUSY'),' ','BUSY'),
uniqueid FROM cdr c
WHERE src = IF(STRCMP('$src',''),'$src',src) AND substr(calldate,1,10) = '$theDate'
ORDER BY calldate" . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA , $link);

//Dibujo la tabla de presentacion y hago la presentacion de resultados
echo "<tr><td>Fecha</td><td>Hora</td><td>Fuente</td><td>Destino</td>
<td>Duracion</td><td>Contestada</td><td>No Contestada</td><td>Fallida</td><td>Ocupado</td></tr>";

while ($row = mysql_fetch_row($result)) {
echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td><td>$row[5]</td><td>$row[6]</td><td>$row[7]</td><td>$row[8]</td></tr> \n";
}

//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i)
echo $pagina . " ";
else
echo "<a href=$PHP_SELF?pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> ";
}
}

echo "</table> \n";

// suma de llamadas contestadas, NO CONTESTADAS, OCUPADAS Y FALLIDAS
$query_contestadas = "SELECT COUNT(disposition) FROM cdr c WHERE src = '$src' AND substr(calldate,1,10) = '$theDate' AND disposition='ANSWERED'";
$resulta_contestadas = mysql_query($query_contestadas) or die(mysql_error());

$query_no_contestadas = "SELECT COUNT(disposition) FROM cdr c WHERE src = '$src' AND substr(calldate,1,10) = '$theDate' AND disposition='NO ANSWER'";
$resulta_no_contestadas = mysql_query($query_no_contestadas) or die(mysql_error());

$query_fallidas = "SELECT COUNT(disposition) FROM cdr c WHERE src = '$src' AND substr(calldate,1,10) = '$theDate' AND disposition='FAILED'";
$resulta_fallidas = mysql_query($query_fallidas) or die(mysql_error());

$query_ocupadas = "SELECT COUNT(disposition) FROM cdr c WHERE src = '$src' AND substr(calldate,1,10) = '$theDate' AND disposition='BUSY'";
$resulta_ocupadas = mysql_query($query_ocupadas) or die(mysql_error());



// PRESENTACION DE LOS RESULTADOS
while($row = mysql_fetch_array($resulta_contestadas)){
echo " ". $row['COUNT(disposition)'] ." ". $row['disposition'] ." ";
}
while($row = mysql_fetch_array($resulta_no_contestadas)){
echo " ". $row['COUNT(disposition)'] ." ". $row['disposition'] ." ";
}
while($row = mysql_fetch_array($resulta_fallidas)){
echo " ". $row['COUNT(disposition)'] ." ". $row['disposition'] ." ";
}
while($row = mysql_fetch_array($resulta_ocupadas)){
echo "&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp" ;
echo " ". $row['COUNT(disposition)'] ." ". $row['disposition'] ." ";
}

;
echo "<a href='https://172.26.1.167/PruebaPHP/'>Regresar </a> "

?>


</body>
</html>

Por msemrezn

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2009 03:15 pm
La parte del codigo donde necesito ayuda, es en el select y la forma de mostrar los resultados en la pagina.

Este el codigo de esta parte

Código :

// Query para consulta a base de datos 
$result = mysql_query("SELECT substr(calldate,1,10), substr(calldate,12,18), src, dst, duration, IF(STRCMP(disposition,'ANSWERED'),' ','ANSWERED'),  
IF(STRCMP(disposition,'NO ANSWER'),' ','NO ANSWER'), IF(STRCMP(disposition,'FAILED'),' ','FAILED'), IF(STRCMP(disposition,'BUSY'),' ','BUSY'), 
uniqueid FROM cdr c
WHERE src = IF(STRCMP('$src',''),'$src',src) AND substr(calldate,1,10) = '$theDate'
ORDER BY calldate" . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA , $link);

//Dibujo la tabla de presentacion y hago la presentacion de resultados
echo "<tr><td>Fecha</td><td>Hora</td><td>Fuente</td><td>Destino</td>
<td>Duracion</td><td>Contestada</td><td>No Contestada</td><td>Fallida</td><td>Ocupado</td></tr>";

while ($row = mysql_fetch_row($result)) {
   echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td><td>$row[5]</td><td>$row[6]</td><td>$row[7]</td><td>$row[8]</td></tr> \n"; 
   }

//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas > 1){
    for ($i=1;$i<=$total_paginas;$i++){
       if ($pagina == $i)
          echo $pagina . " ";
       else
          echo "<a href=$PHP_SELF?pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> ";
    }
} 

Por msemrezn

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.