PHP - Error a realizar paginación en php. ¡ Ayuda !

 
Vista:

Error a realizar paginación en php. ¡ Ayuda !

Publicado por Alonso (3 intervenciones) el 18/03/2008 13:07:18
Buenos días

Llevo varias semanas intentando resolver el problema que tengo con la paginación pero no hay manera. Os dejo el código para ver si me podéis ayudar.

Explicación del problema: A la hora de realizar la paginación da un error de mysql_fetch_array, o no muestra los resultados una vez que le damos a siguiente en la barra de navegación, además de desaparecer dicha barra. Creo que el problema radica en el while.

Muchas gracias por vuestro tiempo.

Un saludo.
----------------------------------------------------------------------------------------------------------------------------------------
Código:

<?PHP

function conectar()
{
$base_de_datos = "proyecto";
$db_usuario = "root";
$db_password = "root";

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;
}
//Guardamos el contenido en una variable
$Nombre=$_REQUEST['Nombre'];
$buscar=$_REQUEST['buscar'];
$exten=$_REQUEST['extension'];
$nivel=$_REQUEST['nivel'];
$asignatura=$_REQUEST['asignatura'];


$db = conectar();
$registros = 1;

$pagina = $_GET["pagina"];

if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}

$resultados = mysql_query("Select dmname,dmdate_published,nivel,asignatura,dmdescription, descarga FROM jos_docman WHERE dmname LIKE '%$Nombre%' AND extension='$exten'");

$total_registros = mysql_num_rows($resultados);

$resultados = mysql_query("Select dmname,dmdate_published,nivel,asignatura,dmdescription, descarga FROM jos_docman WHERE dmname LIKE '%$Nombre%' AND extension='$exten' LIMIT $inicio, $registros");

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

?>

<table align="center" border="2" bgcolor="black">
<tr>
<th>Nombre</th>
<th>Fecha de publicación</th>
<th>Nivel educativo</th>
<th>Asignatura</th>
<th>Descripción</th>
<th>Descargar</th>
</tr>
<?PHP
while($row=mysql_fetch_array($resultados))
{
echo '<tr><td>'.$row["dmname"].'</td>';
echo '<td>'.$row["dmdate_published"].'</td>';
echo '<td>'.$row["nivel"].'</td>';
echo '<td>'.$row["asignatura"].'</td>';
echo '<td>'.$row["dmdescription"].'</td>';
echo '<td>'.$row["descarga"].'</td></tr>';
}
//mysql_free_result($resultados);
//Cerramos la tabla, el form y mostramos enlaces a diferentes páginas Web
?>
</table>
<?PHP
//Bara de navegación para movernos por los registros.

if(($pagina - 1) > 0) {
echo "<a href='buscar.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}

for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i) {
echo "<b>".$pagina."</b> ";
} else {
echo "<a href='buscar.php?pagina=$i'>$i</a> ";
} }

if(($pagina + 1)<=$total_paginas) {
echo " <a href='buscar.php?pagina=".($pagina+1)."'>Siguiente ></a>";
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error a realizar paginación en php. ¡ Ayuda !

Publicado por Omar Yépez (224 intervenciones) el 18/03/2008 15:17:46
Hola Alonso alonsocq [@] hotmail [.] com

Prueba con

while($row==mysql_fetch_array($resultados)) ó mejor aun con while($row<=mysql_fetch_array($resultados))

Espero que sea la solucion a uno de los problemas.

Recuerda que
'=' es para asignar.
'==' es para comparar.
'===' es para validar que los valores , tipo de valores y el tipo de objetos sean iguales se lee como identico a.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error a realizar paginación en php. ¡ Ayuda !

Publicado por Alonso (3 intervenciones) el 19/03/2008 00:14:29
Buenas noches.

Gracias Omar Yépez por la respuesta.

He probado lo que me has dicho pero no funciona, produce un bucle infinito. Os dejo el mensaje de error que produce por si os sirve de ayuda.

De nuevo muchas gracias a todos.

Un saludo.

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:AppServwwwuscar.php on line 173

La línea 173 es esta:

while($row=mysql_fetch_array($resultados))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error a realizar paginación en php. ¡ Ayuda !

Publicado por Omar Yépez (224 intervenciones) el 19/03/2008 00:25:58
Pero estas haciendo paginacion con el boton atras y siguiente de la barra de navegacion??????????????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error a realizar paginación en php. ¡ Ayuda !

Publicado por Omar Yépez (224 intervenciones) el 19/03/2008 00:26:05
Pero estas haciendo paginacion con el boton atras y siguiente de la barra de navegacion del explorador ??????????????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error a realizar paginación en php. ¡ Ayuda !

Publicado por Omar Yépez (224 intervenciones) el 19/03/2008 00:26:07
Pero estas haciendo paginacion con el boton atras y siguiente de la barra de navegacion del explorador ??????????????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error a realizar paginación en php. ¡ Ayuda !

Publicado por Alonso (3 intervenciones) el 19/03/2008 00:33:11
Buenas noches

Gracias por tu atención Omar Yépez.

No, estoy utilizando la barra de navegación del script de paginación es decir este código:

<?PHP

//Bara de navegación para movernos por los registros.

if(($pagina - 1) > 0) {
echo "<a href='buscar.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}

for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i) {
echo "<b>".$pagina."</b> ";
} else {
echo "<a href='buscar.php?pagina=$i'>$i</a> ";
} }

if(($pagina + 1)<=$total_paginas) {
echo " <a href='buscar.php?pagina=".($pagina+1)."'>Siguiente ></a>";
}
?>

Este código me dibuja debajo de la tabla las páginas y los botones "siguiente" y "anterior".

Gracias por tu tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error a realizar paginación en php. ¡ Ayuda !

Publicado por Diego Romero (1450 intervenciones) el 19/03/2008 01:02:17
Viendo el código me asalta una pregunta.
En el segundo SELECT usas la cláusula LIMIT con $inicio y $registros como límites, comprendo de dónde sale $inicio pero no estoy seguro del valor que toma $registros porque esa variable no veo que cambie de valor una vez puesta en 1 al inicio del script.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar