Solamente ke me hace falta corregir un error.
Y pues el error esta que al hacer una consulta limitada a 5 resultados por pagina, la primer pagina si me la muestra bien, pero al momento de seguir a la siguiente pagina ya no me muestra los datos del resultado de consulta. Sino que me muestra todos los datos de la base de datos en forma limitada a 5 resultados.
Y otro problema es ke si me muestra solo un resultado, me sigue mostrando la lista de paginacion para pasar a los siguientes resultados, cuando no deberia de haber mas enlaces porque solo es un resultado.
Este es el codigo:
Código PHP:
<?
//conecto con la base de datos
$conn = mysql_connect("localhost","root","");
//seleccionamos la base de datos
mysql_select_db("xrjs",$conn);
$id=$_GET['id'];// Si existe la variable "id" en la barra url...
if (!isset($_GET['id'])) {
$pag = 1; // Por defecto, pagina 1
} else {
$pag = $_GET['id']; // Página actual
}
// Obtiene todos los registros de la tabla
$resultid = mysql_query("SELECT COUNT(*) FROM catalogo",$conn);
list($total) = mysql_fetch_row($resultid);
// Número de registros por página
$tampag = 5;
// Calcula el rango de los registros
$reg1 = ($pag-1) * $tampag;
// Obtiene los registros en el rango correspondiente
$resultid = mysql_query("SELECT id,producto,numero_producto,foto,contado FROM catalogo WHERE producto LIKE '%$palabra%' OR detalles LIKE '%palabra%' ORDER BY id desc", $conn);
// Imprime todos los registros de la página
$lista_colores=array('GreenYellow','Gainsboro','GreenYellow','Cornsilk','Gainsboro','GreenYellow','Gold');
$num_colores=7;
$indice=1;
if (mysql_num_rows($resultid)){
while ($row = @mysql_fetch_array($resultid)) {
$color=$lista_colores[$indice % $num_colores];
//Tablas de resultados
echo "<p align=center>";
echo "<table style='WIDTH: 720px; HEIGHT: 97px' border='0' bgColor='$color' .centrado[class]>";
echo "<TBODY>";
echo "<TR>";
echo "<TD>";
echo "<P align='center'><img src='fotos/".$row["foto"]."' width='90px' height='90px' align='left''>";
echo "<p align><P align=center><STRONG><FONT face=Arial Black >".$row['producto']."</STRONG></p>";
echo "<P align='left'>".$row["numero_producto"]."</a></p>";
echo "<P align='left'>".$row["numero_articulo"]."</a></p>";
echo "<P align='center'><FORM name=form1 action='detalles?id=".$row["id"]."' method=post><INPUT type=submit value='Ver detalles' name=detalles></p></form></td></tr>";
$indice++;
}
echo "</table>";
}
else echo "¡No se encontró ningún registro!";
/* Función para paginación
* $actual - página actual
* $total - total de registros
* $reg_pagina - registros por página
* $link - enlace para la siguiente página
* Devuelve la cadena HTML de paginación
*/
function paginar($actual, $total, $reg_pagina, $link) {
$total_paginas = ceil($total/$reg_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href='$link$anterior'>Anterior</a> ";
else
$texto = "<b>Ver pagina:</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href='$link$i'>$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href='$link$i'>$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href='$link$posterior'>Siguiente</a>";
else
$texto .= "<b>»</b>";
return $texto;
}
// Pinta la cadena HTML de paginación
echo paginar($pag, $total, $tampag, "muestracatalogo.php?id=");
?>
<?php
mysql_free_result($resultid);
?>