Hola Blackmen10, antes de explicarte un poco mas del del codigo de mostrar Contenido Paginado, te dejo la parte del mio que funciona de pelos. El archivo se llama
listarcarnets.php y lo comento un poco:
Código PHP:
<?
function conectar()
{
//Funcion para conectarnos a nustra BD
$base_de_datos = "usa";
$db_usuario = "root";
$db_password = "";
if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$db = conectar();
//Variable para la cantidad de registros a mostrar por pagina
$registros = 20;
if (@!$pagina=$_GET[pagina]) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
body { font-family: arial; font-size:12px}
</style>
</head>
<body>
<?
//Seleccionamos todos los elementos de HISTORIA_CLINICA mediante el ID
$resultados = mysql_query("SELECT ID_CS FROM historia_clinica");
$total_registros = mysql_num_rows($resultados);
$resultados = mysql_query("SELECT * FROM historia_clinica ORDER BY ID_CS ASC LIMIT $inicio, $registros");
$total_paginas = ceil($total_registros / $registros);
if($total_registros) {
?>
<div align="center">
<p><font color="#CCCCCC"><font color="#003366" size="5" face="Berlin Sans FB">LISTA
DE CARNETS SANITARIOS</font></font></p>
//En esta tabla muestro el contenido de las consultas en su respectiva columna y fila
<table width="85%" border="1" cellspacing="0" bordercolor="#003366">
<tr>
<td width="6%" bgcolor="#003366"> <div align="center">
<p><font size="2" face="Berlin Sans FB"><font color="#FFFFFF">Nº
de Carnet Sanitario</font></font></p>
</div></td>
<td width="5%" bgcolor="#003366"><div align="center"><font size="2" face="Berlin Sans FB"><font color="#FFFFFF" size="1">Nº
de Fotografia</font></font></div></td>
<td width="7%" bgcolor="#003366"><div align="center"><font size="2" face="Berlin Sans FB"><font color="#FFFFFF">Nº
de Historia Clinica</font></font></div></td>
<td width="21%" bgcolor="#003366"> <div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF">Apellidos</font></font></div></td>
<td width="21%" bgcolor="#003366"> <div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF">Nombres</font></font></div></td>
<td width="10%" bgcolor="#003366"> <div align="center">
<p><font face="Berlin Sans FB"><font color="#FFFFFF" size="3">Fecha
de Registro</font></font></p>
</div></td>
<td width="9%" bgcolor="#003366"><div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF" size="2">Carnet
Sanitario </font></font></div></td>
<td width="11%" bgcolor="#003366"><div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF" size="2">Fecha
de Caducidad</font></font></div></td>
<td width="10%" bgcolor="#003366"><div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF" size="2">Imprimir
Documento </font></font></div></td>
</tr>
<?php
while($reg=mysql_fetch_array($resultados)) {
?>
<tr>
<td> <div align="center"><font face="Berlin Sans FB"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["ID_CS"]; ?></font></font></font><font color="#003366"></font></font></div></td>
<td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["NUMERO_FOTO"]; ?></font></font></font></div></td>
<td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["ID_HC"]; ?></font></font></font></font></font></div></td>
<td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="3"><? echo $reg["APELLIDOS_CS"]; ?></font></font></font></div></td>
<td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="3"><? echo $reg["NOMBRES_CS"]; ?></font></font></font></div></td>
<td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo nl2br($reg["FECHA_REGISTRO"]); ?></font></font></font></div></td>
<td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["CARNET_SANITARIO_CS"]; ?></font></font></font></div></td>
<td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["FECHA_CADUCIDAD"]; ?></font></font></font></div></td>
<td><div align="center"><font face="Berlin Sans FB" size="2"><a href="#" onClick="javascript:window.open(
'imprimirDOC.php?cod=<?php echo $reg['ID_CS'];?>','','toolbars=0,titlebars=0,statusbars=0,menubars=0,resizable=0,directories=0,location=0,width=450,height=400');">IMPRIMIR</a></font></div></td>
</tr>
<?php
}
?>
</table>
<br></div>
<?php
} else {
?><font face="Berlin Sans FB" color="#003366" size="3"><div align="center"><br><br><?php echo "No se encontro ningun Carnet Sanitario<br>";?></div></font><?php
}
mysql_free_result($resultados);
if($total_registros) {
echo "<center>";
if(($pagina - 1) > 0) {
//Mostramos el enlace los siguientes N elementos de nuestro contenido
echo "<a href='listarcarnets.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}
for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i)
echo "<b>".$pagina."</b> ";
else
echo "<a href='listarcarnets.php?pagina=$i'>$i</a> ";
}
if(($pagina + 1)<=$total_paginas) {
echo " <a href='listarcarnets.php?pagina=".($pagina+1)."'>Siguiente ></a>";
}
echo "</center>";
}
?>
Ahora bien, para definir la cantidad de elementos a mostrar, tenemos la variable:
$registros=NUMERO;
Debes considear que estos valores siempre sean 0 y 1 respectivamente:
$inicio = 0;
$pagina = 1;
En tu consulta que me comentas:
$resultados = mysql_query("select * from soin where id_orden ORDER BY ASC LIMIT $inicio, $registros");
Tienes demas la condicion WHERE, anteriormente ya deberias haber declarado un valor para $resultados considerando condiciones que tu necesites:
$resultados = mysql_query("SELECT id_orden FROM soin WHERE lo_que_quieras");
De tal forma que esa parte te quede asi:
Código PHP:
$resultados = mysql_query("SELECT id_orden FROM soin");
$total_registros = mysql_num_rows($resultados);
$resultados = mysql_query("SELECT * FROM soin ORDER BY id_orden ASC LIMIT $inicio, $registros");
$total_paginas = ceil($total_registros / $registros);
Y despues de esta parte, muestras los resultados como tu desees dentro del IF:
(En mi caso dentro de una tabla)
Código PHP:
if($total_registros) {
?>
<div align="center">
<p><font color="#CCCCCC"><font color="#003366" size="5" face="Berlin Sans FB">LISTA
DE CARNETS SANITARIOS</font></font></p>
<table width="85%" border="1" cellspacing="0" bordercolor="#003366">
.
.
.
.
.
Ahora si tienes el siguiente error:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\paginas.php on line 54
Considerando que en la linea 54 tienes:
$resultados = mysql_query("select * from soin where id_orden ORDER BY ASC id_orden $inicio, $registros");
Es que
$resultados esta con valor nulo (0), tu consulta retorna un valor vacio y por eso
myswl_num_rows() retorna ese error por que no puede tener dicho valor.
Por que tienes 0 en tu consulta??? Posiblemente por alguna de estas razones:
1. No tienes datos para esa consulta, o sea que no hay resultados para la consulta.
2. Estas utilizando la condicion WHERE que no es necesaria.
3. Estas los nombres de tus variables y campos con mayusculas en lugar de minusculas o visceversa (Revisa los nombres de los campos y escribelos tal cual estas en la BD)
Espero te sirva, cualquie duda vuelve a preguntar aqui mismo, tal vez alguien sepa algo mas concreto y correcto. Por lo pronto es todo.
Saludos!