Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo
ARTICULO: Paginación de resultados con PHP y MySQL

 Se muestran 43 comentarios sin revisar

elizabeth  18/5/05 
Y como realizo una busqueda pero ahora por un rango de valores por ejemplo:
Busqueda por precio:
menos de $100.00
100.00 - 300.00
....

clara  09/8/05 
el enlace del ejemplo no funciona

marisol  27/8/05 
TE FELICITO ME AYUDARON UN MUNDO TUS PAGINAS, ES BUENO SABER QUE ALGUIEN UTILIZA EN INTRNET PARA BIEN.

NO HE NAVEGADO AUN TODO PERO ESTOY BUSCADO COMO INSERTAS REGISTROS CON MYSQL Y PHP SI ES POSIBLE UN EJERCICIO COMPLETO TE LO AGRADECERIA MUCHO

ATTE

JOHANNA Y MARISOL
UNIANDES - ECUADOR

Daniel Alberto  28/8/05 
El codigo funciona perfectamente, pero en mi caso que utilizo PHP y MS -SQL Server no funciona ya que la clausula LIMIT no existe.

krypto84sv  29/8/05 
<?
mssql_select_db("lib");
//Declaramos el tamaño de registros que se van a visualizar por pagina.
$t=2;
if(!isset($_GET['pagina'])) {
$pagina=1;
$inicio=0;
}
else {
$pagina=$_GET['pagina'];
$inicio=($pagina-1)*$t;
}


$sql="select * from administrador";
$r=mssql_query($sql);
$total_paginas = ceil(mssql_num_rows($r) / $t);
$lim_inferior=1;
$lim_superior=1;
while($f=mssql_fetch_array($r)) {
//Con esta condición visualizamos los registros sin usar LIMIT.
if ($lim_inferior>$inicio && $lim_superior<=$t) {
echo $f['cod']."<br>\n";
echo $f['nombre']."<br>\n";
echo "<hr width=10% align=left>";
$lim_superior++;
}
$lim_inferior++;
}

for ($i=1;$i<=$total_paginas;$i++) {
if ($i!=$pagina) {
echo "<a href=$PHP_SELF?pagina=$i>$i</a> ";
}
else {
echo $i." ";
}
}
//alguna duda o sugerencia escribir: daniel_alberto84@hotmail.com
?>

Pedro  23/9/05 
Me vino genial este tutorial. Lo estoy aplicando en http://www.solodisenio.com
Muchas Gracias =D

Pedro  23/9/05 
Me vino genial este tutorial. Lo estoy aplicando en <A HREF="http://www.solodisenio.com">Solo Diseño</A>
Muchas Gracias =D

Hely Miguel  31/10/05 
tengo un formulario como este, pero adicinalmente tengo un SELECT con las opciones PHP,ASP, COLSFUSION,SQL, cuando pagina la primera cantidad de resultados todo ok, pero al pasar a la segunda pagina se pierde el valor de la variable tipo_lenguaje QUE ES LA variable del select, es decir, como puedo mantener el valor de esa variable no se pierda y se mantegan mientras estee paginanado solo cambie cuando se cambie el valor del combo a otro lenguje para que pagine y me muestre todos los resultados

mario castillo  15/11/05 
esta funcion es para conectarse nativamente a una base de datos mssql,
genera una tabla (datagrid), por el numero de campos seleccionados ej
select * from tabla --> seleccionara todos los campos y mostrara una tabla (Datagrid)con todos los campos

Select campo1,campo2 from tabla --> seleccionara solo 2 campos y mostrara una tabla de dos columnas.

function consulta($query,$tamano)
{
$conn=mssql_pconnect("servidor","usuario","contrasena") or die("no se pudo conectar a la base de datos");
$bd=mssql_select_db("syscar",$conn);
$t=$tamano;// tamano de la paginacion
if(!isset($_GET['pagina'])) {
$pagina=1;
$inicio=1;
}
else {
$pagina=$_GET['pagina'];
$inicio=($pagina-1)*$t;
}



if (isset($_GET['campo']) && $_GET['campo']!="" )
{
$ordena=$_GET['campo']+1;
$query=$query." order by ".$ordena." ".$_GET['order'];

}


$recordset=mssql_query($query,$conn);


$fields = mssql_num_fields ($recordset) or die("Num Fields Failed");
$rows = mssql_num_rows ($recordset);

$total_paginas = ceil($rows / $t);
$lim_inferior=1;
$lim_superior=1;



$i=0;//crea en numero de columnas
$y=0;
echo "<table border =2 class='style1'><tr>";

while ($i<$fields)
{

echo "<td>";

echo "<b>".mssql_field_name($recordset,$i)."</b><a href='".$_SERVER['PHP_SELF']."?campo=".$i."&order=Asc&pagina=".$_GET['pagina']."'><img src='../images/arriba.jpg' width='22' height='12' alt='ordenar ascendentemente por ".mssql_field_name($recordset,$i)."'></a><a href='".$_SERVER['PHP_SELF']."?campo=".$i."&order=DESC&pagina=".$_GET['pagina']."'><img src='../images/abajo.JPG' alt='ordenar descendentemente por ".mssql_field_name($recordset,$i)."' width='22' height='12'></a>";
echo "</td>";
$i=$i+1;
}
echo "</tr>";
///encabezado
$i=0;
for ($y=0;$y<$rows;$y++)
{
$resultado=$y%2;
if ($lim_inferior>$inicio && $lim_superior<=$t) {


echo "<tr";
if ($resultado==0)
echo " bgcolor='#bbccdd'>";
else
echo " bgcolor='#ffffff'>";

while ($i<$fields)
{

echo "<td>";

echo mssql_result($recordset,$y,$i);
echo "</td>";
$i=$i+1;
}
$i=0;
$lim_superior++;
}
$lim_inferior++;


echo "</tr>";

}
echo "<tr><td colspan='".$fields."'>";
//paginacion
for ($i=1;$i<=$total_paginas;$i++) {
if ($i!=$pagina) {
echo "<a href='".$_SERVER['PHP_SELF']."?pagina=".$i."&order=".$_GET['order']."&campo=".$_GET['campo']."'>".$i."</a> ";
}
else {
echo "<b>".$i."</b> ";
}

}
echo "</td></tr></table>";


}

julio  20/12/05 
Estimado miguel he seguido todos tus conceptos y ideas y la verdad que me gusta, aparte de esatar en esto del diseño, te cuento que soy de uruguay y quiero hacerte una pregunta, tengo problemas con la paginacioon del mi guestbook y he usado las que tu dices pero no me funciona, aparte queiero saber como hacer para guardar archivos en la db, tanto fotos como cualquier otro, tambien queiro saber como hacer para descargar un fichero con php,recien estoy comenzando con php mas alla de haber echo cursos todavia me quedan dudas, gracias y espero respuesta,este es el link para que puedas ver como me quedo
http://usuarios.lycos.es/decano2000/guestbook

melania  03/1/06 
como mando como paràmetro a una funciòn lo que tengo en un cuadrode texto

Pablo  25/1/06 
Muy excelente tutorial, me sirvio como base para construir un sistema de paginación el Perl, por si a alguien le interesa lo comentamos con mas calma

Saludos y Felicidades

Alan  31/1/06 
me pueden decir q tamaño de pagina tiene el mysql?? por favo lo agradeceria mucho

TaLu  16/5/06 
Muy bueno! Me ayudo mucho para la paginación de mis webs.

Muchas gracias.

Jorge Luis  24/5/06 
Muy bien el artículo, ahora tengo una duda. Si en vez de una consulta lo que tengo es accesos a la BD mediante procedimienos almacenados es claro que este script no me serviría. Existe algun metodo o algo que me sirva en esos casos? Alguien sabe donde puedo hallar un script que me sirva para esa funcionalidad?. Gracias.

amadeogovoni1  29/5/06 
Quiero ver el resultado del link "ver el resultado para enterder el codigo" y da error ¿? :(

J. Pedro  11/8/06 
Muy bueno el código, me ha servido de mucha ayuda. Gracias

Ana  28/9/06 
Gracias por publicar estos artículos y ayudarnos en la construcción de nuestros proyectos.
Yo he probado este código y me funciona casi perfectamente, lo único que no me aparece el primer registro de cada página. Por ejemplo, si el tamaño de las páginas es 20, no me aparece el registro nº1, nº21, ...
¿Alguién podría ayudarme?
Muchas gracias.

Daniel Carrero  28/9/06 
Tengo un ejemplo en Postgresql que puede ayudar:
<?
//Limito la busqueda
$TAMANO_PAGINA = 10;

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

include("conexion.inc.php");
//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "select * from tabla";
$rs = pg_query($connection,$ssql);
$num_total_registros = pg_num_rows($rs);
//calculo el total de páginas
$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 "Número de registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>";
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";
pg_free_result($rs);
//construyo la sentencia SQL
$ssql = "select * from tabla order by id_registro limit ".$TAMANO_PAGINA. " OFFSET " .$inicio.";";

echo $ssql;
$rs = pg_query($connection,$ssql);
while ($fila = pg_fetch_object($rs)){
echo "<br> ".$fila->campo ;
}
//cerramos el conjunto de resultado y la conexión con la base de datos
pg_free_result($rs);
pg_close($connection);
//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)
//si muestro el índice de la página actual, no coloco enlace
echo $pagina . " ";
else
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo "<a href='paginacion.php?pagina=" . $i . "'>" . $i . "</a> ";
}
}
?>

Espero que ayude algo :D
Daniel Carrero

farid diego astorga  16/10/06 
Muy buen articulo lo apliqué y aquí tengo el resultado http://www.laguiadejujuy.com/modules.php?name=Foros
me ofrezco para darles una mano!!! agregenmen fda223@hotmail.com
Gracias desarrolloweb!!!

niña  13/1/07 
Duda si hago una paginación pero tengo un formulario con el cual indico la fecha de la consulta antes como hago que al mostrar otra pagina q no sea la primera me la muestre.
Puesto que solo me muestra la fecha no es valida debido a q antes de la consulta de paginacion tengo validada la fecha

hola  16/1/07 
Oigan alguien sabe como mantengo el valor de una variable que cuando se actualize para cambiar de pagina par seguri viendo los registros ese valor no se pierda pq al momento de perderse pues ya no me muestra lso demas datos

Covi  27/1/07 
Hola, teneis jodida la conexión a la base de datos, error_reporting para todos o al menos los Warnigns y el ejemplo muestra todo el árbol de directorios del sitio....
8)

...solo por si os interesa, que lo mismo no es malo pero bueno tampoco es gg ;)

Gaby  11/2/07 

Hola a todos, muy bueno el artículo!!

Sólo quería acotar que si lo implementamos con el paquete DB de PEAR seria algo asi como:

$query = "select * from pais";
$db->limitQuery ($query, $inicio, $cantidad);


Esta un toque mas copado hacerlo con PEAR..

http://pear.php.net/manual/es/package.database.db.php


Pruebenlo!!

Gaby  11/2/07 
Otra cosita..
Si tomamos los valores de un formulario a traves de POST, cuando hacemos las referencias a las paginas siguientes o anteriores debemos mandarles dentro de la referencia los valores que necesita para poder procesar la query nuevamente, incluyendo la query (si tuviesemos varias querys en nuestro script y entrase a una segun los parametros)..
Y debemos tener en cuenta que la primera vez que tomamos los valores los vamos a tomar con POST, pero las demas los obtenemos mediante GET..Por lo que podriamos hacer:

$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
// Tomo los valores mediante POST
$nombre = $_POST['nombre'];
} else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;
// Tomo los valores mediante GET
$nombre = $_GET['nombre'];
$query = $_GET['query'];
}

Espero no haberlos mareado!!
Saludos..

Mayra  22/2/07 
Les agradeceria si me pudieran ayudar con algunas inquietudes que tengo:
* Quisiera saber cual es la plataforma de WAMP

* Cuantas capas tiene un programa hecho en dreamweaver PHP y WAMP

* Como puedo tener mayor seguridad para que no se puedan ver las claves al abrir el codigo en dreamweaver

* Si realizo una publicacion de un portal web pueden acceder a la contraseña

* Cual es la cantidad maxima de registros que puede almacenar MySQL5

amimusa  17/3/07 
El enlace al ejemplo da errores de conexion a la base de datos.

Javi  18/4/07 
He intentado hacer la paginación pero me da este error: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in.....

Aparentemente todo está bien, porque puede estar fallando?

Jorge  16/5/07 
no he logrado conseguir lo siguiente: estoy agregando un registro, y remito el resultado a una página que me muestra los datos ingresados, ahora, hay un campo que no se toca porque es "auto_increment", y el valor se lo asigna el proceso INSERT, ahora, como obtengo ese valor para hacer la busqueda y mostrar la pag. de resultados. Ya intente el $_POST, pero eso no sirve ya que el valor no lo ingreso en el formulario, lo asigna el proceso mismo en el servidor.
si saben de algo puntocomsoluciones@gmail.com

Grax.

Luis  18/5/07 
Estupendo artículo.
Pensé que me llevaría horas adaptarlo a mi página, pero solo me llevo 10 minutos. Increible. Muchas gracias.

ESTRELLA  27/5/07 
ME GUSTARIA SABER COMO HACER PARA PAGINAR LOS RESULTADOS DE DOS CONSULTAS DIFERENTES EN LA MISMA PAGINA POR EJEMPLO EN LA PAGINA TENGO DOS TABLAS EN UNA MUESTRA LOS RESULTADOS DE UNA CONSULTA Y EN OTRA TABLA MUESTRA LOS RESULTADOS DE OTRA CONSULTA....COMO SE HACE PARA MOSTRAR AMBOS RESULTADOS EN LA MISMA PAGINA Y QUE TENGA PAGINACION

jose  29/5/07 
veo que aparece la opcion echo>a href="index.php"
como escribo esa funcion o como la plantean ustedes

Victor  04/6/07 
Hola e visto que todo ejemplo que tienen en esta pagina que utiliza una base de datos no funciona, supongo que es difícil mantener todos los ejemplos funcionado bien no mas como comentario.

Pero tengo un problema, y como al parecer no revisan este artículo desde el 2004 espero que algún usuario de su página me eche una mano,

En mi pagina se hace una búsqueda para mostrar los registros, pero como son muchos datos diferentes, por estética acomode solo un registro por pagina, y no tuviera problema si solo se mostrara un solo registro cuando se hace la búsqueda, por eso puse la paginación, el problema surge por que no es solo una tabla la que voy a mostrar, son varias tablas que lo único que tienen en común es el identificador del registro que les incluí a cada tabla es auto incrementable. Bueno ya logre implementar el patinador en la pagina pero solo me sirve para la primera pagina ya que cuando le doy a la segunda me marca errores.

Es complicado de explicar el problema pero lo are lo mejor que pueda, ago la búsqueda y por medio de un switch según la opción que escojan y la palabra que el usuario escriba se hace la consulta, cuando switch selecciona la consulta yo extraigo el id, pero nomás me pone el primer numero que tenga del primer registro, así que hice el siguiente arreglo para obtener todos los de más registros:

while($row = mysql_fetch_array($consulta)){
$i++;
$id[$i] = $reg["contrato"];
}

Ya con el ID muestro los datos de cada tabla con una consulta paresida a esta.

$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `contrato` = CONVERT( _utf8 '".$id."' USING latin1 )";)

Pero como hacer para que aguarre los distintos IDs que ay lo que hice fue ponerle un bucle

while($i != $num_total_registros){
$i++;
$consulta=mysql_query("select * from `contrato_real` where `contrato` = CONVERT( _utf8 '".$id[$i]."' USING latin1 )".$criterio." limit ".$inicio.",".$tamano_pagina."");

Pero así por cada ves que tenga un registro se ara la consulta, no se como solucionar eso es pero que me ayuden, y también tienes que incluir un ciclo para mostrar los datos
Ami me quedo asi.

while ($fila = mysql_fetch_object($consulta)){

El primer bucle contiene al Segundo, es decir que el while que me servia para que el ID fuera cambiando, contiene el while que me sirve para mostrar lo tiene que contener para que muestre los datos según la consulta que va.

Curiosamente el primer registro se mostró correctamente y sin error pero cuando intento pasarme a otra registro por medio de la paginación me marca estos errores en las siguientes líneas:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\sistema\clientes\buscontrato.php on line 100

100>$num_total_registros = mysql_num_rows($consulta);

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\sistema\clientes\buscontrato.php on line 110

110>while($row = mysql_fetch_array($consulta)){

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\sistema\clientes\buscontrato.php on line 114

114>mysql_free_result($consulta);

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\sistema\clientes\buscontrato.php on line 115

115>mysql_close($base);


Parese que los todos los errores son causa del primer error, pues esa es miduda es pero que alguien la pueda responder, Suerte a todos cn sus paginas, a continuación les pongo el codigo completo.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Resultados</title>
<script type="text/javascript">
function buscar(){
window.location.href="buscador.html";
}
function principal(){
window.location.href="../inicio.html";
}
</script>
</head>

<body>
<!-- Aqui se obtiene el id para la consultas siguientes -->
<?
$clave = $_GET[con];
$palabra = $_GET[palabra];

switch($clave):
case "id":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `contrato` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "nombre":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `nombre` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "calle":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `calle` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "colonia":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `colonia` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "localidad":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `localidad` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "cp":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `cp` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "tel1":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `telefono1` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "tel2":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `telefono2` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "tel3":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `telefono3` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "meil1":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `email1` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
case "meil2":
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
$consulta=mysql_query("select * from `contrato_real` where `email2` REGEXP CONVERT( _utf8 '".$palabra."' USING latin1 )");
$reg = mysql_fetch_array($consulta);
break;
endswitch;
$tamano_pagina = 1;
// se examina pagina a mostrar y el indice del registro
$pagina = $_GET["pagina"];
if(!$pagina){
$inicio = 0;
$pagina = 1;
}else{
$indice = ($pagina * tamano_pagina);
}
// mostrar el numero total de registors
$num_total_registros = mysql_num_rows($consulta);
//calculo total de las paginas a mostrar
$total_paginas = ceil($num_total_registros / $tamano_pagina);
//se muestra el tamano de la pagina total, el tamano de la pagina y la pagina que se esta mostrando
echo "<center>";
echo "Registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran páginas de " . $tamano_pagina . " registros cada una<br>";
echo "Mostrando la p&aacute;gina " . $pagina . " de " . $total_paginas . "<p>";
echo "</center>";

while($row = mysql_fetch_array($consulta)){
$i++;
$id[$i] = $reg["contrato"];
}
mysql_free_result($consulta);
mysql_close($base);
?>
<!-- Esta es la parte del contrato -->
<?
if($id[$i] != ""){
?>
<?
$i=0;
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
while($i != $num_total_registros){
$i++;
$consulta=mysql_query("select * from `contrato_real` where `contrato` = CONVERT( _utf8 '".$id[$i]."' USING latin1 )".$criterio." limit ".$inicio.",".$tamano_pagina."");
while ($fila = mysql_fetch_object($consulta)){
?>

<table border="0" align="center" cellspacing="0" cellpadding="0">
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Nombre:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->nombre ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Calle y Numero:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->calle ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center"width="150px"><font size="2">Colonia:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->colonia ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Localidad:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->localidad ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Codigo Postal:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->cp ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Telefono1:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->telefono1?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Telefono2:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->telefono2?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Telefono3:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->telefono3?></td>
</tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">E-mail 1:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->email1?></td>
</tr>
</tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">E-mail 2:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->email2?></td>
</tr>
<tr>
<td colspan="2"><center><a href="modcontrato.php"><img src="../imagenes/Modificar_resultados.gif" border="0"/></a></center></td>
</tr>
</table>
<? }//fin del while que muestra las filas
}//fin de while pra el id
mysql_close($base)?>
<!-- Esta es la parte de Facturacion -->
<?
$i=0;
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
while($i != $num_total_registros){
$i++;
$consulta=mysql_query("select * from `facturas_real` where `id` = CONVERT( _utf8 '".$id[$i]."' USING latin1 )".$criterio." limit ".$inicio.",".$tamano_pagina."");
while ($fila = mysql_fetch_object($consulta)){
?>
<table border="0" align="center" cellspacing="0" cellpadding="0">
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Nombre:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->nombre ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Direccion:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->direccion ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">localidad:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->localidad ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Codigo Postal:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->cp ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">R.F.C.:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->rfc ?></td>
</tr>
<tr>
<td colspan="2"><center><a href="modfactura.php"><img src="../imagenes/Modificar_resultados.gif" border="0"/></a></center></td>
</tr>
</table>
<? }//fin del while que muestra las filas
}//fin de while pra el id
mysql_close($base)?>
<!-- Esta es la parte de Servicio -->
<?
$i=0;
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
while($i != $num_total_registros){
$i++;
$consulta=mysql_query("select * from `servicios_real` where `id` = CONVERT( _utf8 '".$id[$i]."' USING latin1 )".$criterio." limit ".$inicio.",".$tamano_pagina."");
while ($fila = mysql_fetch_object($consulta)){
?>
<table border="0" align="center" cellspacing="0" cellpadding="0">
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Servicio:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->servicio ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Modalidad:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->modalidad ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Duracion:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->duracion ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Fecha de Pago:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->fecha ?></td>
</tr>
<tr>
<td background="../imagenes/fon_res4.gif" align="center" colspan="2"><font size="2">Observaciones:</font></td>
</tr>
<tr>
<td align="center" colspan="2" background="../imagenes/obfon.gif" height="100"><? echo $fila->observaciones ?></td>
</tr>
<tr>
<td colspan="2"><center><a href="modservicio.php"><img src="../imagenes/Modificar_resultados.gif" border="0"/></a></center></td>
</tr>
</table>
<?
}//fin del while que muestra las filas
}//fin de while pra el id
mysql_close($base)?>
<!-- Esta es la parte de Detos del Equipo -->
<?
$i=0;
$base=mysql_connect("localhost","root","");
mysql_select_db("clientes",$base);
while($i != $num_total_registros){
$i++;
$consulta=mysql_query("select * from `datos_final` where `id` = CONVERT( _utf8 '".$id[$i]."' USING latin1 )".$criterio." limit ".$inicio.",".$tamano_pagina."");
while ($fila = mysql_fetch_object($consulta)){
?>
<table border="0" align="center" cellspacing="0" cellpadding="0">
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Mac Address:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->macaddress ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">No. Serie:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->serie ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Ancho de Banda:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->ancho ?> Kbts</td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Color Code:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->color ?></td>
</tr>
<tr>
<td background="../imagenes/fondo_resultados.gif" align="center" width="150px"><font size="2">Plato:</font></td><td background="../imagenes/fon_res2.gif" align="center" width="220px"><? echo $fila->plato ?></td>
</tr>
<tr>
<td colspan="2"><center><a href="modequipo.php"><img src="../imagenes/Modificar_resultados.gif" border="0"/></a></center></td>
</tr>
<?
}//fin del while que muestra las filas
}//fin de while pra el id
mysql_close($base)?>
<tr>
<td align="center" colspan="2">
<?
if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i){
//si muestro el índice de la página actual, no coloco enlace
echo $pagina . " ";
}else{
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo "<a href='buscontrato.php?pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> ";
}
}
}
?>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<button name="buscar" onclick="buscar();">Buscar mas Registros</button><button name="menu" onclick="principal();">Menu Principal</button></td>
</tr>
</table>
<?
}else{ echo "No existe ning&uacute;n registro con esas caracter&iacute;sticas";
//header("Location:buscador.html");
}
?>
</body>
</html>

Mario Castillo  03/10/07 
<?php
function consulta($query,$tamano)
{
$conn=mysql_connect(\\\"localhost\\\",\\\"root\\\",\\\"\\\") or die(\\\"no se pudo conectar a la base de datos\\\");
$bd=mysql_select_db(\\\"nombre_base_de_datos\\\",$conn);
$t=$tamano;// tamano de la paginacion
if(!isset($_GET[\\\'pagina\\\'])) {
$pagina=1;
$inicio=1;
}
else {
$pagina=$_GET[\\\'pagina\\\'];
$inicio=($pagina-1)*$t;
}



if (isset($_GET[\\\'campo\\\']) && $_GET[\\\'campo\\\']!=\\\"\\\" )
{
$ordena=$_GET[\\\'campo\\\']+1;
$query=$query.\\\" order by \\\".$ordena.\\\" \\\".$_GET[\\\'order\\\'];

}


$recordset=mysql_query($query,$conn);


$fields = mysql_num_fields ($recordset) or die(\\\"Num Fields Failed\\\");
$rows = mysql_num_rows ($recordset);

$total_paginas = ceil($rows / $t);
$lim_inferior=1;
$lim_superior=1;



$i=0;//crea en numero de columnas
$y=0;
echo \\\"<table border =2 class=\\\'style1\\\'><tr>\\\";

while ($i<$fields)
{

echo \\\"<td>\\\";

echo \\\"<b>\\\".mysql_field_name($recordset,$i).\\\"</b><a href=\\\'\\\".$_SERVER[\\\'PHP_SELF\\\'].\\\"?campo=\\\".$i.\\\"&order=Asc&pagina=\\\".$_GET[\\\'pagina\\\'].\\\"\\\'><img src=\\\'../images/arriba.jpg\\\' width=\\\'22\\\' height=\\\'12\\\' alt=\\\'ordenar ascendentemente por \\\".mysql_field_name($recordset,$i).\\\"\\\'></a><a href=\\\'\\\".$_SERVER[\\\'PHP_SELF\\\'].\\\"?campo=\\\".$i.\\\"&order=DESC&pagina=\\\".$_GET[\\\'pagina\\\'].\\\"\\\'><img src=\\\'../images/abajo.JPG\\\' alt=\\\'ordenar descendentemente por \\\".mysql_field_name($recordset,$i).\\\"\\\' width=\\\'22\\\' height=\\\'12\\\'></a>\\\";
echo \\\"</td>\\\";
$i=$i+1;
}
echo \\\"</tr>\\\";
///encabezado
$i=0;
for ($y=0;$y<$rows;$y++)
{
$resultado=$y%2;
if ($lim_inferior>$inicio && $lim_superior<=$t) {


echo \\\"<tr\\\";
if ($resultado==0)
echo \\\" bgcolor=\\\'#bbccdd\\\'>\\\";
else
echo \\\" bgcolor=\\\'#ffffff\\\'>\\\";

while ($i<$fields)
{

echo \\\"<td>\\\";

echo mysql_result($recordset,$y,$i);
echo \\\"</td>\\\";
$i=$i+1;
}
$i=0;
$lim_superior++;
}
$lim_inferior++;


echo \\\"</tr>\\\";

}
echo \\\"<tr><td colspan=\\\'\\\".$fields.\\\"\\\'>\\\";
//paginacion
for ($i=1;$i<=$total_paginas;$i++) {
if ($i!=$pagina) {
echo \\\"<a href=\\\'\\\".$_SERVER[\\\'PHP_SELF\\\'].\\\"?pagina=\\\".$i.\\\"&order=\\\".$_GET[\\\'order\\\'].\\\"&campo=\\\".$_GET[\\\'campo\\\'].\\\"\\\'>\\\".$i.\\\"</a> \\\";
}
else {
echo \\\"<b>\\\".$i.\\\"</b> \\\";
}

}
echo \\\"</td></tr></table>\\\";
}
?>
<?php
//envias la consulta que necestias
$var=consulta(\\\"select nombre_empresa,codigo_empresa from empresas\\\",1000);
echo $var;
?>

cristina  02/11/07 
Sabes que me sirvio mucho este script aunq tuve que hacer algunas adaptaciones

Carlos  11/11/07 
Ojito con eso de pasar la condición como parámetro que luego te pueden inyectar sql y hacerte un destrozo.

evelin  07/1/08 
kiero un manual completo de php y mysql

bailamj  17/3/08 
Genial artículo, me ha servido a la perfección! :)
tengo nociones de php pero ha sido perfecto.

por cierto, ahora que ya tengo la paginación, cómo hago que cada artículo/tema que saco de la base de datos (en el ejemplo pais) salga con una url amigable? sería fácil?

Gracias!

Giancarlo  16/4/08 
Una pregunta, ¿Es posible hacer la misma paginacion pero utilizando procedimientos almacenados? si es asi por favor si podrian poner un ejemplo. Gracias.

Adam  07/5/08 
muy buen articulo, me sirvio de mucho gracias :D

Ramon  16/5/08 
muy bueno el post
creo que esta muy completo!

Silvia  17/7/08 
Excelente articulo, lo he aplicado y me ha funcionado muy bien. No estoy utilizando HTML pero la filosofia era lo que me hacia falta! :)

villaherre  27/8/08 
muchas gracias por el ejercicio muy excelente. sin embargo tengo un inconveniente pues la verdad yo no estoy usando el campo de visible porque necesito que me muestre todas las noticias sin embargo en la consulta tengo que validar lo que hay en el campo de texto para que me muestre las noticias pero solo me muestra la primera pagina y al pasa a la segunda pagina me muestra la validacio que le tengo "no hay resultados" como soluciono este problema pero cuando lo dejo estatico es decir que en el campo numero='1'; hay si me muestra todas las paginas pero asi no lo necesito a continuacion dejo el codigo que tengo:
$resultados = mysql_query("select * from acuerdos where numero =$TxtAcuerdo");

$total_registros = mysql_num_rows($resultados);

$resultados = mysql_query( "select * from acuerdos where numero =$TxtAcuerdo ORDER BY año ASC LIMIT $inicio,$registros");

$total_paginas = ceil($total_registros / $registros);



echo "<p>N&uacute;mero de Acuerdos encontrados: ".$total_registros."</p><br>";



if($total_registros) {



while($row=mysql_fetch_array($resultados))



{

echo "<p><strong>"." No de Acuerdo: ";

echo stripslashes($row["numero"]);

echo "</strong><br>A&ntilde;o: ";

echo stripslashes($row["año"]);

echo "<br>Fecha: ";

echo stripslashes($row["fecha"]);

echo "<br>Asunto: ";

echo stripslashes($row["asunto"]);

echo "<br><br>";

}

} else {

echo "<font color='darkgray'>(sin resultados)</font>";

}

Ver el articulo / faq completo Ver el articulo y todos sus comentarios
Añadir un comentario al artículo Añadir un comentario del artículo
  Ir arriba

Comentarios no revisados de:

+ Paginación de resultados con PHP y MySQL


DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia