Hola, siempre recurro a esta página para poder resolver mis dudas en cuanto a programación de sitios web pero no puedo encontrar solución a la paginación puesto que no me funciona correctamente.
Tengo el siguiente código:
<form name="formulario" action="form_mostrar_historial_paciente.php" method="post">
<legend><strong><font size = 2> Historial del Paciente </font></strong></legend>
<table>
<tbody>
<script language="JavaScript">
function checkFields(objTextoStrRut, objTextoRut) {aqui tengo un script que valida el rut}
//formulario que introduce run ( id ) y elige una opcion en un select
<tr>
<td> R.U.N.: </td>
<td><input size= "12 "type="text" name="rut" maxlength="12" onChange="checkFields(this)" /><br></td>
<td>Ejemplo:11.111.111-1</td>
</tr>
El el select entre Morbilidad o Accidente, de a acuerdo a eso muestra el historial de la persona si es Accidente o Morbilidad.
<tr>
<td> Tipo de Consulta: </td>
<td>
<select name="TipoConsulta">
<option VALUE="Morbilidad">Morbilidad</option>
<option VALUE="Accidente">Accidente</option>
</select>
</td>
</tr>
</tbody>
</table>
<p>
</fieldset>
<br>
<input type="submit" value="Consultar" />
</form>
<br>
</p><p>
//Aquí el codigo importante
<?php
$link = mysql_connect("localhost","root","dibustosb");
mysql_select_db("BDSESAC",$link);
$TipoConsulta=$HTTP_POST_VARS["TipoConsulta"];
$idPaciente=$HTTP_POST_VARS["rut"];
$sqldatos= "
SELECT P.NombrePaciente, P.ApellidoPaciente
FROM Paciente P
WHERE P.idPaciente = '$idPaciente'";
$result_sql_datos=mysql_query($sqldatos, $link) or die ("Fallo en la consulta");
$fila_sql_datos = mysql_fetch_array($result_sql_datos);
echo "R.U.N. del Paciente: <b>".$idPaciente." </b>";
echo "<br>";
echo "Nombre del Paciente: <b>".$fila_sql_datos["NombrePaciente"]." ".$fila_sql_datos["ApellidoPaciente"]."</b>";
echo "<br>";
//paginación, para mostrar el historial de la persona, le puse que mostrara 3 registros por pagina
$registros = 3;
if (!$page)
{
$inicio = 0;
$page = 1;
}
else
{
$inicio = ($page - 1) * $registros;
}
if($TipoConsulta=="Accidente")
{
$sqlconsulta="
SELECT A.DescripcionAccidente, A.AtencionAccidente, A.ObservacionAccidente, A.Fecha, A.LugarAccidente
FROM Accidente A
WHERE A.idPaciente = '$idPaciente'
ORDER BY A.Fecha DESC";
$result_sql_consulta=mysql_query($sqlconsulta, $link) or die ("Fallo en la consulta");
$num_resultados_sql_consulta=mysql_num_rows($resul t_sql_consulta);
echo "Número de Consultas: <b>".$num_resultados_sql_consulta."</b>";
echo "<br>";
echo "<br>";
//paginacion - continuación
$resultados = mysql_query("SELECT A.idPaciente FROM Accidente A WHERE A.idPaciente = '$idPaciente'");
$total_registros = mysql_num_rows($resultados);
$resultados = mysql_query("SELECT A.DescripcionAccidente, A.AtencionAccidente, A.ObservacionAccidente, A.Fecha, A.LugarAccidente FROM Accidente A WHERE A.idPaciente = '$idPaciente' ORDER BY A.Fecha DESC LIMIT $inicio, $registros");
$total_paginas = ceil($total_registros / $registros);
while ($fila_sql_consulta = mysql_fetch_array($resultados))
{
echo "<b>".(++$i).". Fecha: " .$fila_sql_consulta["Fecha"]."</b>";
echo "<br>";
echo "Consultó Por: " .$fila_sql_consulta["DescripcionAccidente"];
echo "<br>";
echo "Atención Brindada: " .$fila_sql_consulta["AtencionAccidente"];
echo "<br>";
echo "Lugar del Accidente: " .$fila_sql_consulta["LugarAccidente"];
echo "<br>";
echo "<br>";
}
//paginacion, continuación para mostrar los links
if(($page - 1) > 0)
{
echo "<a href='form_mostrar_historial_paciente.php?pagina=" .($page-1)."'>< Anterior</a> ";
}
for ($i=1; $i<=$total_paginas; $i++)
{
if ($page == $i)
{
echo "<b>".$page."</b> ";
}
else
{
echo "<a href='form_mostrar_historial_paciente.php?pagina=$ i'>$i</a> ";
}
}
if(($page + 1)<=$total_paginas)
{
echo " <a href='form_mostrar_historial_paciente.php?pagina=" .($page+1)."'>Siguiente ></a>";
}
echo "</center>";
}
el else del if de TipoConsulta no lo coloco puesto que deberia ser lo mismo que tengo que corregir en Accidente, ya que solo cambian las tablas y atributos de la consulta a la base de datos
?>
A mí me muestra en la primera página, es decir cuando consulto por primera vez, los 3 registros, pero cuando pincho para ir a la página 2, donde debieran estar el resto de los registros, me aparece en blanco y en numero de consultas 0. Cuando este deberia ser el total de lo que encontró.
Ayuda =/ he probado varios códigos de paginación. También el script PHPPaging, y siempre me pasa lo mismo, me muestra en la primera página el numero de registros que digo con el limit, pero cuando voy a la pagina siguiente ya no me muestra nada.