Problema para Paginar en php

Buenas tardes Amigo, Necesito ayuda, no puedo PAGINAR un resultado de Búsqueda, una consulta de toda la Tabla de mi BD si se página correctamente, Pero al hacer una Búsqueda si me muestra el resultado pero me muestra los Links de Toda la Tabla, pero al hacer clic en uno de elos Links me aparece error. Lo que quiero es que me Pagine solo los resultados de la Búsqueda. Mientras no. No se cual es mi error, este es el código que estoy utilizando.
Por favor ayudame te lo agradecería bastante.. Gracias.
<?php
// Abre conexión con la base de datos
$connection = mysql_connect("localhost", "admingss", "gss");
// Selecciona la base de datos
mysql_select_db("globalcliente", $connection);
if (!isset($_GET['pag'])) {
$pag = 1; // Por defecto, pagina 1
} else {
$pag = $_GET['pag']; // Página actual
}
// Obtiene todos los registros de la tabla
$consulta = mysql_query("SELECT COUNT(*) FROM ventas ", $connection);
list($total) = mysql_fetch_row($consulta);
// Número de registros por página
$tampag = 4;
// Calcula el rango de los registros
$reg1 = ($pag-1) * $tampag;
//empieza la Busqueda
       $busqueda=$_POST['busqueda'];
       $btnbuscar=$_POST['btnBuscar'];
       if (isset($btnbuscar)) {
        $consulta=mysql_query("SELECT * FROM ventas WHERE Num_Cliente LIKE '$busqueda' ORDER BY Fecha DESC LIMIT $reg1, $tampag",$connection);
        $result=mysql_fetch_row($consulta);
        if ($result==0){
         print 'No se encontro registro en la BD';
        } else { 
        print '<TABLE BORDER="1"  CELLSPACING="0" CELLPADDING="3">
<tr>
<td colspan="8" align="center" bgcolor="#cecef6">BASE DE DATOS DE PEDIDOS</td>
</tr>
         <TR bgcolor="#d8d8d8" >
         <TH valign="middle"> Numero Cliente</TH>
         <TH valign="middle"> Orden Compra</TH>
         <TH valign="middle"> #Partidas</TH>
         <TH valign="middle"> Fecha Entrega</TH>
         <TH valign="middle"> Forma Pago</TH>
         <TH valign="middle"> Estatus</TH>
         <TH valign="middle"> Fecha</TH>
         <TH valign="middle"> Comentarios </TH>
          </TR>';
        while ($datos=mysql_fetch_assoc($consulta)) {
         print'
<tr>
<td width="30">'.$datos['Num_Cliente'].'</td>
<td width="30">'.$datos['Orden_Compra'].'</td>
<td width="30">'.$datos['Num_Partidas'].'</td>
<td width="80">'.$datos['Fecha_Pago'].'</td>
<td width="90">'.$datos['Tipo_Pago'].'</td>
<td width="80">'.$datos['Estatus'].'</td>
<td width="80">'.$datos['Fecha'].'</td>
<td width="110" align="justify">'.$datos['Comentarios'].'</td>
</tr>
';
        }
        print '
</table>
';
        }
       }
/* Función para paginación
* $actual - página actual
* $total - total de registros
* $reg_pagina - registros por página
* $link - enlace para la siguiente página
* Devuelve la cadena HTML de paginación
*/
function paginar($actual, $total, $reg_pagina, $link) {
$total_paginas = ceil($total/$reg_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href='$link$anterior'>«</a> ";
else
$texto = "<b>«</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href='$link$i'>$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href='$link$i'>$i</a> ";
 if ($actual<$total_paginas && $total_paginas>1)
 $texto .= "<a href='$link$posterior'>»</a>";
 else
 $texto .= "<b>»</b>";
return $texto;
}
echo "<center>";
// Pinta la cadena HTML de paginación
echo paginar($pag, $total, $tampag, "paginacion.php?pag=");
echo "</center>";
?>

1 respuesta

Respuesta
1
¿Pero el problema es que el link no te va o la paginación es la que no te funciona?... intenta expresarlo de otra forma, no te entiendo muy bien
Mira cuando pagino me sale <<1 2 3 4 5>> que vamos a suponer que es el total de la tabla de mi base de datos, a lo que voy es que cuando hago una Busqueda me debe de salir solo los datos buscado, si es solo un dato que en la paginacion salga <<1>>, que no me salga <<1 2 3 4 5>> que es el total de los datos de la tabla. si son 10 datos ya serian dos paginas <<1 2>>. Ese es lo que quiero. Le agradecería si me ayudara. En este caso
Debes de llamar a la función de paginación con el total de datos de la consulta que acabas de hacer, no con el total de esa tabla
No entendí como hacerle
A ver si con esto te puedes aclarar:
http://www.desarrolloweb.com/articulos/1248.php

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas