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 <?php echo $registro['marca']; ?> <?php echo $registro['modelo']; ?> de segunda mano - <?php echo htmlentities($registro['ciudad']); ?></a></b><br>
Precio: <?php echo $registro['precio']; ?> €
Fecha: <?php echo $registro['date']; ?> <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 <?php echo $registro['marca']; ?> <?php echo $registro['modelo']; ?> de segunda mano - <?php echo htmlentities($registro['ciudad']); ?></a></b><br>
Precio: <?php echo $registro['precio']; ?> €
Fecha: <?php echo $registro['date']; ?> <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 + 1 - $arriba;
if($pag==$links-1)$abajo = $pag - $arriba;
if($pag==$links)$abajo = $pag - 1 - $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>";
}
}
?>