paginazione da query errata

Ciao a tutti,

sto cercando di affinare una pagina di ricerca ma se aggiungo questa condizione

if(trim($tipo_offerta) != "" AND trim($tipo_immobile) != "" AND trim($categoria) != "" AND trim($provincia) != "" AND trim($comune) == "")

allo script ma cosi facendo non pagina i dati successivi alla prima pagina, praticamente passando alla seconda pagina esegue la prima query riportandomi non le restanti voci ma riproponendomi tutta la query senza condizione. Questa:

$strsql = "select * from immobili limit $inizio,$numero_record";
$query = mysql_query($strsql); 

e non capisco il perchè. Di seguito lo scrip completo della paginazione

<?php

include('connessione.php');

$numero_record = 8;
if(!isset($HTTP_GET_VARS["inizio"])){
$inizio = 0;
}else{
$inizio = $HTTP_GET_VARS["inizio"];
}

$tipo_offerta= $_POST['tipo_offerta'];
$tipo_immobile= $_POST['tipo_immobile'];
$categoria= $_POST['categoria'];
$provincia= $_POST['provincia'];
$comune= $_POST['comune'];

if(trim($tipo_offerta) == "" AND trim($tipo_immobile) == "" AND trim($categoria) == "" AND trim($provincia) == "" AND trim($comune) == "") {
                        
$strsql = "select * from immobili limit $inizio,$numero_record";
$query = mysql_query($strsql);

$strsql2 = "select * from immobili";
$query2 = mysql_query($strsql2);

}else{
                        
if(trim($tipo_offerta) != "" AND trim($tipo_immobile) != "" AND trim($categoria) != "" AND trim($provincia) != "" AND trim($comune) == "")

$strsql = "SELECT * FROM immobili WHERE tipo_offerta='$tipo_offerta' AND tipo_immobile='$tipo_immobile' AND categoria='$categoria' AND provincia='$provincia' limit $inizio,$numero_record";

$query = mysql_query($strsql);
$strsql2 = "SELECT * FROM immobili WHERE tipo_offerta='$tipo_offerta' AND tipo_immobile='$tipo_immobile' AND categoria='$categoria' AND provincia='$provincia'";
$query2 = mysql_query($strsql2);
}
                      
//$risultato = mysql_query($query);

$numero_record_totali = mysql_numrows($query2);
$numero_pagine = ceil($numero_record_totali/$numero_record);
$pagina_corrente = ceil(($inizio/$numero_record) + 1);

echo "<div id='' class='h9'>Trovati nella ricerca effettuata $numero_record_totali risultati.</div>";

if (!$query) {
echo "Fallimento nell'esecuzione della query ($sql) dal DB: " . mysql_error();
}

if (mysql_numrows($query) == 0) {
echo "Nessun immobile trovato nel Database!";
}

while ($riga = mysql_fetch_array($query)) {
   
$tipo_offerta= $riga['tipo_offerta'];
$tipo_immobile= $riga['tipo_immobile'];
$categoria= $riga['categoria'];
$provincia= utf8_encode($riga['provincia']);
$comune = utf8_encode($riga['comune']);
$zona = utf8_encode($riga['zona']);
$prezzo = $riga['prezzo'];
$superficie = $riga['superficie'];
$piano = $riga['piano'];
$termoautonomo = $riga['termoautonomo'];
$giardino = $riga['giardino'];
$descrizione=utf8_encode($riga['descrizione']);  
$foto1 = $riga['file1'];
$randname = $riga['randname'];


echo "<a href=\"scheda.php?id=".$riga['id']."\"><img border='0' src=\"phpThumb.php?src=admin/$foto1&w=90&h=90\" /></a>
                           
$comune&nbsp;($provincia)</span>";}

               
if($numero_pagine > 1){
for($pagina = 1; $pagina <= $numero_pagine; $pagina++){
   if($pagina == $pagina_corrente){
    echo"[<b>".$pagina."</b>]";
    }else{
   echo"[<a id='riscer' href='search.php?inizio=".(($pagina - 1) * $numero_record)."'>".$pagina."</a>]";
    }
}
}
mysql_free_result($query);
mysql_close(); 
?>

ho tolto una parte ralativa all'impaginazione dei dati per non rendere il tutto troppo noioso e lasciando solo due righe di riferimento

inviato 9 anni fa
Falco72
modificato 9 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda