Ciao a tutti,
sono nuovo del forum.
Per questo vi chiedo venia per la mia ignoranza in fattore di programmazione, ma sto cercando di imparare da autodidatta..
Come da titolo ho creato una pagina di risultati da una semplice form, e dato che i risultati sono diventati tanti, ho pensato di suddividerli su più pagine...
Ho letto molte guide e molti post in merito ed fatto questo:
solo che ho un problema...ora i record non si visualizzano più!
Nonostante mi si vedano correttamente i numeri delle pagine (ho 35 record e ne deve visualizzare 20 per pagina, quindi due pagine).
La cosa strana è che prima avevo lo script senza la parte inerente alla paginazione e funzionava tutto benissimo..
Dove sto sbagliando?
Non ci sarebbe anche un modo per visualizzare anche avanti e indietro?
anche su questo non sono riuscito...
Grazie a tutti quanti
ciao
sono nuovo del forum.
Per questo vi chiedo venia per la mia ignoranza in fattore di programmazione, ma sto cercando di imparare da autodidatta..
Come da titolo ho creato una pagina di risultati da una semplice form, e dato che i risultati sono diventati tanti, ho pensato di suddividerli su più pagine...
Ho letto molte guide e molti post in merito ed fatto questo:
PHP:
if (get_magic_quotes_gpc())
{
$tipo = stripslaches($tipo);
}
$tipo = mysql_real_escape_string($tipo);
//inizio parte inerente la paginazione
$ris_conteggio = mysql_query("SELECT count(*) as tot FROM Immobili WHERE Tipo LIKE '%$tipo%'") or die( mysql_error() );
$righe = mysql_fetch_array( $ris_conteggio );
$messaggi = 20;
$current_page = (!$_GET['pag']) ? 1 : (int)$_GET['pag'];
$pagine = ceil ( $righe['tot'] / $messaggi );
echo "Pagine: ";
for ( $i = 1; $i <= $pagine; $i++ ) {
if($i == $current_page) {
$paginazione .= $i . " ";
} else {
$paginazione .= "<a href=\"risultato.php?tipo=" . $tipo . " &pagina=" . $i . "&Invia=true\">" . $i . "</a>";
}
}
echo $paginazione;
// estraggo i record
if (! isset ($_GET['pag']) || (int)$_GET['pag'] < 1) {
$_GET['pag'] = 1;
}
if (isset ($_GET['pag']) && (int)$_GET['pag'] > $pagine) {
$_GET['pag'] = $pagine;
}
if(isset ($_GET['Invia']) && $_GET['Invia'] == "true") {
$query = "SELECT Immobili.Tipo, Immobili.Comune, Immobili.Acquisto, Immobili.Prezzo, Immobili.Descrizione, Immobili.ID, Immagini.Id_Immobili, Immagini.Percorso, Immagini.Flag FROM Immobili JOIN Immagini ON Immobili.ID = Immagini.Id_Immobili WHERE Immobili.Tipo LIKE '%$tipo%' LIMIT " . ( ( (int)$_GET['pag'] - 1 ) * $messaggi ) . "," . $messaggi or die( mysql_error() );
$risultato = mysql_query($query);
// qui il codice che stampa i messaggi
if(mysql_num_rows($ris_conteggio) == 0) {
echo ("<div id=\"contenutoimmobile\">Non ci sono immobili al momento per questa sezione.</div>");
}else{
while ($ris_array = mysql_fetch_assoc($risultato)) {
echo "<div id=\"contenutorecord\">";
echo "<div id=\"sfondoimgsmall\"><img src=\"" . $ris_array['Percorso'] . "\" height=\"99\" width=\"150\" /></div>";
echo "<div id=\"contenutoimmobile\">";
$Acquisto = strtoupper($ris_array['Acquisto']);
$Tipo = strtoupper($ris_array['Tipo']);
$Comune = strtoupper($ris_array['Comune']);
$Descrizione = tagliastringa($ris_array['Descrizione'],150);
$Prezzo = "€ " . $ris_array['Prezzo'];
echo "<h2>" . $Acquisto . " - " . $Tipo . " - " . $Comune . " - " . $Prezzo . "</h2>";
echo "<p>" . $Descrizione . "</p></div></div>";
}
}
}
Nonostante mi si vedano correttamente i numeri delle pagine (ho 35 record e ne deve visualizzare 20 per pagina, quindi due pagine).
La cosa strana è che prima avevo lo script senza la parte inerente alla paginazione e funzionava tutto benissimo..
Dove sto sbagliando?
Non ci sarebbe anche un modo per visualizzare anche avanti e indietro?
anche su questo non sono riuscito...
Grazie a tutti quanti
ciao