Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/02/2007, 07:44
towi62
 
Fecha de Ingreso: abril-2005
Mensajes: 253
Antigüedad: 19 años, 1 mes
Puntos: 0
problema con este buscador

Hola que tal, yo de nuevo, lo que pasa es ke he venido armando un buscador con paginacion de diferentes codigos, y algo de logica aplicada por mi mismo..
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);

?>
__________________
:cool: aprendiz :cool:

Última edición por towi62; 17/02/2007 a las 16:25