Ciao a tutti,
spero che qualcuno possa aiutarmi a capire dove sta l'errore, utilizzo questo motore di ricerca con la paginazione, ma a differenza dei listati che la paginazione mi tiene la provincia orrettamente, in questo caso mi conta tutti i risultati che trova nel db e mi alimenta le pagine ma con i risultati sbagliati.
es se io check tipologia e proivncia nella prima pagina che restituisce da i risultati es bergamo correttamente, ma dalla seconda pagina mi da i risultati es vicenza ecc ecc ....
posto il codice qualcuno può aiutarmi a capire, oppure a cambiare la paginazione visto che ne uso una molto vecchia che avevo trovato sul vostro sito ...
grazie mille in anticipo
funzione cerca_c
paginazione
spero che qualcuno possa aiutarmi a capire dove sta l'errore, utilizzo questo motore di ricerca con la paginazione, ma a differenza dei listati che la paginazione mi tiene la provincia orrettamente, in questo caso mi conta tutti i risultati che trova nel db e mi alimenta le pagine ma con i risultati sbagliati.
es se io check tipologia e proivncia nella prima pagina che restituisce da i risultati es bergamo correttamente, ma dalla seconda pagina mi da i risultati es vicenza ecc ecc ....
posto il codice qualcuno può aiutarmi a capire, oppure a cambiare la paginazione visto che ne uso una molto vecchia che avevo trovato sul vostro sito ...
grazie mille in anticipo
funzione cerca_c
PHP:
<?php
class MySQL{
function MySQL()
{
require_once "db_connect.php"; //metti l'once
}
}
$aid = $_POST['aid'];
$bid = $_POST['bid'];
$zid = $_POST['zid'];
$data = new MySQL();
if(isset ($_POST['cerca_c'])){
$_SESSION['cerca_c']=$_POST['cerca_c'];
}
$cerca_a = mysql_escape_string(stripslashes($_SESSION['cerca_c']));
if (strlen($_SESSION['cerca_c']) < 1 && $_SESSION['aid'] == "" && $_SESSION['bid'] == "" && $_SESSION['zid'] == "" ) {
echo "dati inseriti non validi";
//e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere
} else{
$q = "SELECT * FROM mio
INNER JOIN tipologia ON (mio.tipologiaid=tipologia.id )
INNER JOIN provincia ON (mio.provinciaid=provincia.id )
INNER JOIN users ON (pompe.user_id=users.id)
WHERE 1=1 DESC ";
if($cerca_a != "") {
$q.= " && (id_annunci LIKE '%$cerca_c%' OR cittas LIKE '%$cerca_c%' OR titolo LIKE '%$cerca_c%' OR messaggio LIKE '%$cerca_c%' )";
}
if($bid != "") {
$q.= " && tipologia.id = '$aid'";
}
if($eid != "") {
$q.= " && provincia.id = '$bid'";
}
$q = mysql_query($q) or die (mysql_error()) ;
$count=mysql_num_rows($q);
if($count == 0){
echo "Non ci sono risultati con la tua ricerca. Prova a cambiare la parola chiave";
//e qui il ritorno alla pagina di inserimento o a quella che ti fa più piacere es. registrati
}else{
//visto che ci sono dati inserisci anche la paginazione
require_once "paginazione.php";//metti l'once
$p = new Paging;
$max = 6;
// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);
// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);
$lim="LIMIT $inizio, $max";
$sq_lim=$q.$lim;//ripetere lo stesso codice uguale è sempre cattiva programmazione
$risultato=mysql_query($sq_lim);
while($row=mysql_fetch_array($q)){
$click_annuncio = $row['click_annuncio'];
$id_annunci = $row['id_annunci'];
$user_id = $row['id'];
$messaggio = substr($row['messaggio'], 0, 100);
$mq = $row['mq'];
$tipologia = $row['tipologia'];
$titolo = $row['titolo'];
$tipo = $row['tipo'];
$locali = $row['locali'];
$username = $row['username'];
$email = $row['email'];
$cliente = $row['cliente'];
$logo_cliente = $row['logo_cliente'];
$nome_file = $row['nome_file'];
$tipo_file = $row['tipo_file'];
$dati_file = $row['dati_file'];
$nome_file_vero = $row['nome_file_vero'];
$tipo_file = $row['tipo_file'];
$dati_file = $row['dati_file'];
echo " <p><a href=\"risultato-onoranze.php?id=$id_annunci\"/><img src='immagini2ricette.php?id_annunci=$id_annunci' name='$nome_file' alt'$nome_file' title='$titolo' class='img-responsive' /></a></p>";
echo "<a href=\"risultato-onoranze.php?id=$id_annunci\"/>$titolo</a><br /><br /> ";
echo "<h5>$messaggio ...</h5><br />";
}
$lista = $p->listaPagine($_GET['p'], $pagine);
echo "<tr><td colspan=\"3\">";
echo "$lista . <br>";
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
echo "</td></tr>";
echo"</table></h5>";
}//fine if-else ci sono dati
}//fine if-else post giusto
?>
paginazione
PHP:
<?php
// definiamo una costante per la pagina corrente
define("SELF", $_SERVER['PHP_SELF']);
// definiamo la classe
class Paging
{
// definiamo la pagina di partenza
function paginaIniziale($max_row)
{
if ((!isset($_GET['p'])) || ($_GET['p'] == "1"))
{
$parti_da = 0;
$_GET['p'] = 1;
}else{
$parti_da = ($_GET['p']-1) * $max_row;
}
return $parti_da;
}
// contiamo le pagine e stabiliamo quanti records devono essere impaginati
function contaPagine($conta, $max_row)
{
$pgg = (($conta % $max_row) == 0) ? $conta / $max_row : floor($conta / $max_row) + 1;
return $pgg;
}
// mostriamo l'elenco delle pagine
function listaPagine($p_corrente, $pgg)
{
$listapgg = "";
if (($p_corrente != 1) && ($p_corrente))
{
$listapgg .= " <a href=\"".SELF."?p=1\">Prima pag.</a> ";
}
if (($p_corrente-1) > 0)
{
$listapgg .= "<a href=\"".SELF."?p=".($p_corrente-1)."\"><</a> ";
}
for ($i=1; $i<=$pgg; $i++)
{
if ($i == $p_corrente)
{
$listapgg .= "<b>".$i."</b>";
}else{
$listapgg .= "<a href=\"".SELF."?p=".$i."\">".$i."</a>";
}
$listapgg .= " ";
}
if (($p_corrente+1) <= $pgg)
{
$listapgg .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">></a> ";
}
if (($p_corrente != $pgg) && ($pgg != 0))
{
$listapgg .= "<a href=\"".SELF."?p=".$pgg."\">Ultima pag.</a> ";
}
$listapgg .= "</td>\n";
return $listapgg;
}
// permettiamo la navigazione per pagine precedenti e successive
function precedenteSuccessiva($p_corrente, $pgg)
{
$impaginazione = "";
if (($p_corrente-1) <= 0)
{
$impaginazione .= "Precedente";
}else{
$impaginazione .= "<a href=\"".SELF."?p=".($p_corrente-1)."\">Pag. precedente</a>";
}
$impaginazione .= " | ";
if (($p_corrente+1) > $pgg)
{
$impaginazione .= "Prossima";
}else{
$impaginazione .= "<a href=\"".SELF."?p=".($p_corrente+1)."\">Prossima pag.</a>";
}
return $impaginazione;
}
}
?>
Ultima modifica: