Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/11/2010, 12:40
arquidea
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años
Puntos: 5
problema paginación y búsqueda

Hola amigos, espero que me puedan ayudar. Supongo que mi problema tiene que ser una tontería pero algo se me está pasando por alto.

Tengo este código de paginación que funciona perfecto, el problema es que me muestra todas las páginas de anuncios que tengo dentro de una tabla de la base de datos (pg: 1,2,3,4...) y yo quiero que me muestre solo los anuncios que le he pasado por un cuadro de búsqueda, es decir que si hay un total de 40 y me muestra diez página (4 páginas), pero que cuando yo haga una búsqueda y solo haya 20 anuncios para esa bésqueda me muestre solo 2 páginas, no como ahora que me muestra 2 página llenas y otras 2 vacias, ya que no hay anuncios para esas dos páginas.

Espero haberme explicado...si no me han entendido pregunten sin problemas!

Código PHP:
<?php

# aqui se extrae la cantidad de registros totales
$rsC mysql_query("Select count(*) from coches");
$resultC mysql_fetch_array($rsC);
$count $resultC[0];
 
# Aqui se pone la cantidad de registros por pagina
# que se quieren mostrar
$hasta 10;
 
if(
$pag==""){
 
$desde 0;
 
$pag 1;    
}
else{
 
$pag $_GET["pag"];
 
$pagS $pag 1;
 
$desde $hasta $pagS;    
}


if(
$_GET["pag"]>=1){
$rs mysql_query("select * from coches INNER JOIN ciudades ON coches.idciudad = ciudades.idciudad INNER JOIN marcas ON coches.idmarca = marcas.idmarca INNER JOIN modelos ON coches.idmodelo = modelos.idmodelo WHERE coches.idmarca = $_SESSION[marca] AND coches.idciudad = $_SESSION[ciudad] AND precio>= $_SESSION[precio1] AND precio<= $_SESSION[precio2] limit $desde,$hasta");    
while(
$registro=mysql_fetch_array($rs)){
     
$nombre $registro['imagen1']; 
$id $registro['id']; 
$idmarca $registro['idmarca'];
?>

<div id="cada_coche">

<img style="border:1px solid #D5D5D5;" align=left height="60" width="80" vspace="4" hspace="10"src="/anunciar-coches/upload/<?php echo $nombre;?>" width="100" height="75"/>
<b><a href="/coches-de-segunda-mano/detalle-coche.php?id_coche=<?php echo $id;?>">Coche&nbsp;<?php echo $registro['marca']; ?>&nbsp;<?php echo $registro['modelo']; ?>&nbsp;de segunda mano&nbsp;-&nbsp;<?php echo htmlentities($registro['ciudad']); ?></a></b><br>
Precio:&nbsp;<?php echo $registro['precio']; ?>&nbsp;&euro;&nbsp;
Fecha:&nbsp;<?php echo $registro['date']; ?>&nbsp;<br>
<?php
// Inicializamos las variables
$tamano 75// tamaño máximo
$contador 0;
$texto htmlentities($registro['descripcion']);
 
// Cortamos la cadena por los espacios
$arrayTexto split(' ',$texto);
$texto '';
 
// Reconstruimos la cadena
while($tamano >= strlen($texto) + strlen($arrayTexto[$contador])){
    
$texto .= ' '.$arrayTexto[$contador];
    
$contador++;
}
echo 
$texto?>...
</div>
<br><br><br><br>

<?php
 

}else{    

$idmarca $_POST['marca'];
$_SESSION["marca"] = $idmarca

$idciudad $_POST['ciudad'];
$_SESSION["ciudad"] = $idciudad;

$precio $_POST['precio1'];
$_SESSION["precio1"] = $precio

$precio $_POST['precio2'];
$_SESSION["precio2"] = $precio
        
$rs mysql_query("select * from coches INNER JOIN ciudades ON coches.idciudad = ciudades.idciudad INNER JOIN marcas ON coches.idmarca = marcas.idmarca INNER JOIN modelos ON coches.idmodelo = modelos.idmodelo WHERE coches.idmarca = '$idmarca' AND coches.idciudad = '$idciudad' AND precio>='$precio1' AND precio<='$precio2' limit $desde,$hasta");
while(
$registro=mysql_fetch_array($rs)){

$nombre $registro['imagen1']; 
$id $registro['id']; 
$idmarca $registro['idmarca'];
?>

<div id="cada_coche">

<img style="border:1px solid #D5D5D5;" align=left height="60" width="80" vspace="4" hspace="10"src="/anunciar-coches/upload/<?php echo $nombre;?>" width="100" height="75"/>
<b><a href="/coches-de-segunda-mano/detalle-coche.php?id_coche=<?php echo $id;?>">Coche&nbsp;<?php echo $registro['marca']; ?>&nbsp;<?php echo $registro['modelo']; ?>&nbsp;de segunda mano&nbsp;-&nbsp;<?php echo htmlentities($registro['ciudad']); ?></a></b><br>
Precio:&nbsp;<?php echo $registro['precio']; ?>&nbsp;&euro;&nbsp;
Fecha:&nbsp;<?php echo $registro['date']; ?>&nbsp;<br>
<?php
// Inicializamos las variables
$tamano 75// tamaño máximo
$contador 0;
$texto htmlentities($registro['descripcion']);
 
// Cortamos la cadena por los espacios
$arrayTexto split(' ',$texto);
$texto '';
 
// Reconstruimos la cadena
while($tamano >= strlen($texto) + strlen($arrayTexto[$contador])){
    
$texto .= ' '.$arrayTexto[$contador];
    
$contador++;
}
echo 
$texto?>...
</div>
<br><br><br><br>

<?php
  
}
 }
mysql_close($link);
?>

<?php
# aqui se llama a la funcion que muestra los links por paginas
# la variable $extra_variables es para anexar mas variables al url
# si es necesario para los querys que hagan.
# Solo se debe concatenar los datos nombre1=valor1&nombre2=value2
# NOTA: puede ubicar en cualquier parte de su codigo esta funcion
# para que aparesca dentro de la celda que desee.
# link totales es una variable al ser definida le dices a la funcion
# cuantos links quieres que aparescan por pantalla ya que si tienes
# 100 paginas no deberas ver los 100 links y solo muestres los necesarios
$link_totales 4;
# se llama la funcion paginar
# los links si tiene un css podran tomar la estructura y color que le pongas
## Inicia Paginador
paginar($count,$hasta,$pag,$link_totales,$extra_variables);
 
# Funcion paginar
# Inicia
function paginar($count,$hasta,$pag,$link_totales,$extra_variables){
    if(
$link_totales==1)$link_totales=2;
    
$links $count $hasta;
    
$arriba $link_totales 2;
    
$abajo $pag 1;
    if(
$abajo==0)$abajo 1;
    
$temp_r $links $pag;
    if(
$temp_r>=$arriba){
     
$link_break $pag $arriba;
    }
    else{
     
$link_break $links;
     
$abajo $pag $arriba;
     if(
$pag==$links-1)$abajo $pag $arriba;
     if(
$pag==$links)$abajo $pag $arriba;
    }
 
    if(
$pag==1)$link_break $link_totales;
    if(
$abajo==0)$abajo=1;
    if(
strlen($extra_variables)!=0$extra_variables "&".$extra_variables;
 
    if(
$pag==1){
     
$anterior 1;    
    }
    else{
    
$anterior $pag 1;    
    }
    if(
$pag!=1){
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>";
    }
 
    for(
$i=$abajo;$i<=$links;$i++){
     if(
$link_break<$i){
      break;
     }
     else{
        if(
$pag==$i){
        echo 
$i." | ";    
        }
        else{
        echo 
"<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>";
        echo 
$i;
        echo 
" | </a>";
        }
     }
    }
    if(
$pag==$links){
    
$siguiente $links;
    }
    else{
    
$siguiente $pag 1;
    }
    if(
$pag!=$links){
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguiente >></a>";
    }
}
?>
Saludos y gracias!