Foros del Web » Programando para Internet » PHP »

Ayuda con Paginación PHP y MySql

Estas en el tema de Ayuda con Paginación PHP y MySql en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/08/2010, 08:55
 
Fecha de Ingreso: mayo-2009
Ubicación: Concepción
Mensajes: 27
Antigüedad: 14 años, 11 meses
Puntos: 0
Ayuda con Paginación PHP y MySql

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>&nbsp;Historial del Paciente&nbsp;</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>&nbsp;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>&nbsp;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"]."&nbsp;".$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.
  #2 (permalink)  
Antiguo 09/08/2010, 13:17
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Ayuda con Paginación PHP y MySql

¿Y si pruebas almacenando algunos datos en variables de sesión?
Código HTML:
/*Antes del encabezado html*/
<?php
session_start();
$_SESSION["k_idregisto"]= <valor a conservar>;
?>
Los cuales puedas consultar conforme te mueves en las páginas para generar las consultas.

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:59.