Estoy tratando de paginr los resultados que hago por medio de una consulta a una base de datos. La paginación resulta sin problemas pero sucede "algo extraño" , debido a que el primer valor siempre me lo imprime en la primera fila de todas las pagina y no me muestra el valor que corresponde en esa pagina y esa fila.
Aqui coloco un ejemplo de comoesta funcionando hasta ahora:
Ejemplo de impresion por pantalla:
Pagina 1: valor 1 --- valor 2--- valor 3
Pagina 2: valor 1 -- valor 5 --- valor 6 (Deberia montrar el valor 4 y no el valor 1)
Pagina 3: valor 1 -- valor 8 --- valor 9 (Deberia montrar el valor 5 y no el valor 1)
Pagina 3: valor 1 -- valor 11 --- N... (Deberia montrar el valor 10 y no el valor 1)
Ojalá se pueda entender lo que trate de explicar y que me puedan ayudar.
Aqui dejo mi codigo:
Código PHP:
<?php
//Carga de variables del Servidor de Base de Datos.
require ('base_de_datos.php');
//Conexion a la Base de Datos.
$conexion = mysql_connect($host,$usuario,$password) or die ('Error de conexion, el error es: '.mysql_error());
//Seleccion de la Base de Datos.
mysql_select_db($bd,$conexion) or die ('Error de selecion de Base de Datos, el error es: '.mysql_error());
//Confeccion de la consulta SQL.
$consulta = 'SELECT id_vehiculo, patente_vehiculo, marca_vehiculo, modelo_vehiculo, ano_vehiculo, descripcion_estado_vehiculo FROM vehiculo JOIN estado_vehiculo USING (id_estado_vehiculo)';
//Ejecucion de la consulta SQL.
$resultado = mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
//Contar cantidad de registros
$num_registros=mysql_num_rows($resultado);
//echo"$num_registros";
//Comprueba existencia de resultado
if (mysql_num_rows($resultado))
{
//Muestra los resultados
for ($i = 0;$i <= mysql_num_rows($resultado)-1; $i++)
{
if (!mysql_data_seek($resultado, $i))
{
echo "No se puede mostrar la fila ".$i.", el error es: ".mysql_error();
continue;
}
if (!($registro = mysql_fetch_row($resultado)))
{
continue;
}
//******PAGINACION*********
//cantidad de registros por pagina
$registros=3;
//numero de pagina
$pagina=$_GET["num"];
if (is_numeric($pagina))
$inicio=(($pagina-1)*$registros);
else
$inicio=0;
$resultado = mysql_query("SELECT id_vehiculo, patente_vehiculo, marca_vehiculo, modelo_vehiculo, ano_vehiculo, descripcion_estado_vehiculo FROM vehiculo JOIN estado_vehiculo USING (id_estado_vehiculo) limit $inicio,$registros " ,$conexion);
$paginas=ceil($num_registros/$registros);
echo '<tr bgcolor="#cccccc">';
echo '<td><div align="center"><form name="buscar" method="post" action="modificar_vehiculo.php"><input type="submit" value="'.$registro[0].'"><input type="hidden" name="id_vehiculo" value="'.$registro[0].'"><input type="hidden" name="enviar" value="Buscar"></form></div></td>';
echo '<td><label style="font-size:12px"><div align="center">'.$registro[1].'</div></label></td>';
echo '<td><label style="font-size:12px"><div align="center">'.$registro[2].'</div></label></td>';
echo '<td><label style="font-size:12px"><div align="center">'.$registro[3].'</div></label></td>';
echo '<td><label style="font-size:12px"><div align="center">'.$registro[4].'</div></label></td>';
echo '<td><label style="font-size:12px"><div align="center">'.$registro[5].'</div></label></td>';
echo '</tr>';
}
}
else
{
?>
</table>
<table width="100%" class="Estilo1" align="center">
<tr>
<td><label style="font-size:20px"><div align="center">No existen registros!</div></label></td>
</tr>
</table>
<?php
//cierra else
}
?>
<?php
//Imprimir numeros de paginas
if ($pagina>1)
echo "<a href='maestro_vehiculos.php ?num=" . ($pagina-1) ."' > Anterior</a> " ;
for ($cont=1;$cont<=$paginas;$cont++)
{
if ($cont==$pagina)
echo $cont . " " ;
else
echo "<a href='maestro_vehiculos.php?num=".$cont ."'>$cont</a> " ;
}
if ($pagina<$paginas)
echo "<a href='maestro_vehiculos.php ?num=" . ($pagina+1) ."'> Siguiente</a> " ;
echo"</table>";
?>
<?php
//cierra funcion
}
?>