Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/12/2011, 18:37
marx-pola
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Paginación de resultados MUY lenta

Hola a todos! Tengo una base de datos con 10.000 registros/productos. Armé las consultas, armé la paginación, el buscador funciona pero al momento de paginar los resultados, cuando quiero pasar a la siguiente página se me cuelga la web completa , se tilda, se queda pensando y nada... hasta que por ahí, a los minutos pasa a la siguiente.

Les muestro como tengo armada la tabla productos y las consultas para que me digan que me falta o que estoy haciendo mal.

tabla producto


Consultas y Paginación
Código PHP:
ini_set("memory_limit","32M");

    include(
'conectar.php');

    
// conexion a la base
    
$conexion mysql_connect($host_db$usuario_db$pass_db) or die ("no se ha podido conectar a la BD");
    
mysql_select_db($base_db$conexion) or die ("no se ha podido seleccionar la BD");


// realizar esta función si se apretó el botón de enviar en el formulario de busqueda
if(isset($_GET['searchart']))

$select1 $_GET['select1'];
$select2 $_GET['select2'];
$select3 $_GET['select3'];
{

$condiciones "";
if (
$select1 != ""$condiciones .= " AND categoria.id_categoria = $select1";
if (
$select2 != "" && $condiciones != ""$condiciones .= " AND linea.id_linea = $select2";
if (
$select3 != "" && $condiciones != ""$condiciones .= " AND articulo.id_articulo = $select3";

$res mysql_query("SELECT * FROM producto, categoria, linea, articulo WHERE producto.cod_categoria = categoria.cod_categoria AND producto.cod_linea = linea.cod_linea AND producto.cod_articulo = articulo.cod_articulo $condiciones ORDER BY producto.cod_linea"); 

$numeroRegistros mysql_num_rows($res);

$tamPag=10;

//pagina actual si no esta definida y limites 
if(!isset($_GET["pagina"])) 

$pagina=1
$inicio=1
$final=$tamPag
}else{ 
$pagina $_GET["pagina"]; 

//calculo del limite inferior 
$limitInf=($pagina-1)*$tamPag

//calculo del numero de paginas 
$numPags=ceil($numeroRegistros/$tamPag); 
if(!isset(
$pagina)) 

$pagina=1
$inicio=1
$final=$tamPag
}else{ 
$seccionActual=intval(($pagina-1)/$tamPag); 
$inicio=($seccionActual*$tamPag)+1

if(
$pagina<$numPags

$final=$inicio+$tamPag-1
}else{ 
$final=$numPags


if (
$final>$numPags){ 
$final=$numPags



$res mysql_query("SELECT * FROM producto, categoria, linea, articulo WHERE producto.cod_categoria = categoria.cod_categoria AND producto.cod_linea = linea.cod_linea AND producto.cod_articulo = articulo.cod_articulo $condiciones ORDER BY producto.cod_linea LIMIT ".$limitInf.", 16"); 

//muestro los resultados...

//Paginacion

if($pagina>1

echo 
"<a class='txtPaginador11b' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&select1=".$select1."&select2=".$select2."&select3=".$select3."'>"
echo 
"<class='txtPaginador11b'><< ANTERIOR</font>"
echo 
"</a>*"


for(
$i=$inicio;$i<=$final;$i++) 

if(
$i==$pagina

echo 
"<class='txtPaginador11b'><b>".$i." </b>"
}else{ 
echo 
"<a class='txtPaginador11b' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&select1=".$select1."&select2=".$select2."&select3=".$select3."'>"
echo 
"<class='txtPaginador11b'>".$i."</a>*"


if(
$pagina<$numPags

echo 
"*<a class='txtPaginador11b' href='" .$_SERVER["PHP_SELF"]. "?pagina=" .($pagina+1). "&orden=".$orden."&select1=".$select1."&select2=".$select2."&select3=".$select3."'>"
echo 
"<class='txtPaginador11b'>SIGUIENTE >></a>"

echo 
"<div id='total_paginador'><font face='verdana' size='-2'>Total: ".$numeroRegistros." resultados</div>";

// Cierro la conexion
mysql_close($conexion); 
Tengo el mismo estilo de buscador pero preparado para buscar por palabras y le pasa exactamente lo mismo... TARDA UNA ETERNIDAD en pasar de página.

¿Me pueden decir por favor por qué pasa esto?

Desde ya espero puedan darme una mano porque me lo están reclamando y no sé que hacer para solucionarlo.

Muchas gracias y saludos.

Marx.

Les dejo para que vean y lo prueben si es que quieren en la demo de la web que estoy terminando. El código de arriba pertenece a "busqueda con filtros":
http://www.pizzutoautopartes.com.ar/demo/index.php
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.