Paginazione

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Buonasera a tutti,
Ho una pagina che contiene un form, che al suo interno ha solo un menù a tendina. In esso ci sono varie città. Si sceglie la città e poi si preme sul pulsante "Cerca". L'action del form ricarica la stessa pagina. Al ricaricare la pagina, recupero il valore di quanto selezionato dall'utente nel menù a tendina, nella seguente maniera:

PHP:
  $citta = $_POST['citta'];

Il risultato è la stampa a video dei vari record che compongono la tabella del DB, che chiamo sale. Poiche i record stessi sono molti, ho deciso di non farli visualizzare tutti in un'unica pagina, ma di fare una paginazione. A seguire
il codice.

HTML:
<table id="tabella" cellpadding="3" border="1">
  <tr>
    <td class="td_header">Città</td>
    <td class="td_header">Società</td>
    <td class="td_header">Nome sala</td>
    <td class="td_header">Alias BNL</td>
    <td class="td_header">ISDN</td>
    <td class="td_header">IP</td>
    <td class="td_header">Ubicazione</td>
    <td class="td_header">Referente</td>
    <td class="td_header">Modifica</td>
    <td class="td_header">Elimina</td>
  </tr>
PHP:
$count = mysql_query("SELECT COUNT(id) FROM sale WHERE citta = '$citta'");
$res_count = mysql_fetch_row($count);
$tot_records = $res_count[0];
$per_page = 10;
$tot_pages = ceil($tot_records / $per_page);
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];  
$primo = ($current_page - 1) * $per_page;
$sql = "SELECT * FROM sale WHERE citta='$citta' ORDER BY id ASC LIMIT $primo, $per_page";
$res = $db->query($sql);
  while ($f = $res->fetch()) {
    echo '<tr>';
      echo '<td class="td_entry">'.$f['citta'].'</td>';
      echo '<td class="td_entry">'.$f['societa'].'</td>';
      echo '<td class="td_entry">'.$f['nome'].'</td>';
      echo '<td class="td_entry">'.$f['gk'].'</td>';
      echo '<td class="td_entry">'.$f['isdn'].'</td>';
      echo '<td class="td_entry">'.$f['ip'].'</td>';
      echo '<td class="td_entry">'.$f['indirizzo'].'</td>';
      echo '<td class="td_entry">'.$f['referente'].'</td>';
      echo '<td class="modifica_sale">
        <a href="">
	  <img src="img/sale_img/modifica.png" border="0" />
	</a>
      </td>';
      echo '<td class="elimina_sale">
	<a href="">
	  <img src="img/sale_img/elimina.png" border="0" />
	</a>
      </td>';
echo '</tr>';
}
include("paginazione.php");
HTML:
</table>
PHP:
echo '
  <div id="paginazione_container">
    <div id="paginazione">'.$paginazione.'</div>
  </div>';

A seguire la pagina paginazione.php

PHP:
$paginazione = "<span id='pagine_totali'>"."Pagine totali:"."</span>"." ";
for($i = 1; $i <= $tot_pages; $i++) {
  if($i == $current_page) {
  $paginazione .= $i . " ";
} else {
  $paginazione .= "<a href=\"?page=$i\" title=\"Vai alla pagina $i\">$i</a> ";
}
}

Escono fuori 5 pagine, ciascuna delle quali contenenti 10 record. Il problema è che nella prima pagina vedo questi 10 record, mentre nelle altre non vedo nulla.
Se clicco sul numero 2 della paginazione, ad esempio, la pagina paginazione.php, passa con il $_GET il seguente link:

127.0.0.1/videoconferenza/salesa.php?page=2

questa pagina sembra non restituire i 10 record che dovrei vedere, poichè sembrerebbe che la variabile $citta non sia chiaramente più valorizzata.
Mi aiutate a risolvere per favore?

Grazie mille
Saluti a tutti
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, potresti passare in get anche la città
Codice:
127.0.0.1/videoconferenza/salesa.php?citta=torino&page=2
e recuperarla in questo modo
PHP:
$citta = $_REQUEST['citta'];
 

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Grazie mille caro per il suggerimento.
Ho risolto in altro modo, magari un pò più maccheronico, però funziona.
Vedo la pagina in cui mi trovo

PHP:
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

A seconda di dove sono, faccio quanto a seguire:

HTML:
<table id="tabella" cellpadding="3" border="1">
  <tr>
    <td class="td_header">Città</td>
    <td class="td_header">Società</td>
    <td class="td_header">Nome sala</td>
    <td class="td_header">Alias BNL</td>
    <td class="td_header">ISDN</td>
    <td class="td_header">IP</td>
    <td class="td_header">Ubicazione</td>
    <td class="td_header">Referente</td>
    <td class="td_header">Modifica</td>
    <td class="td_header">Elimina</td>
  </tr>
PHP:
// verifico il path della pagina 
if ($url == "http://127.0.0.1/altri/videoconferenza/salesa.php") {
// esecuzione prima query
  $sql = "SELECT COUNT(id) FROM sale WHERE citta = '$citta'";
} else {
   $sql = "SELECT COUNT(id) FROM sale WHERE citta = '$cittaritorno'";
  }
$res = $db->query($sql);
$fbis = $res->fetchbis();
// numero totale di records
$tot_records = $fbis[0];
// risultati per pagina(secondo parametro di LIMIT)
$per_page = 10;
// numero totale di pagine
$tot_pages = ceil($tot_records / $per_page);
// pagina corrente
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
// primo parametro di LIMIT
$primo = ($current_page - 1) * $per_page;
// verifico il path della pagina
if ($url == "http://127.0.0.1/altri/videoconferenza/salesa.php") {	
  // esecuzione seconda query
  $sql = "SELECT * FROM sale WHERE citta='$citta' ORDER BY id ASC LIMIT $primo, $per_page";
} else {
     $sql = "SELECT * FROM sale WHERE citta = '$cittaritorno' ORDER BY id ASC LIMIT $primo, $per_page";
   }
$res = $db->query($sql);
while ($f = $res->fetch()) {
  echo '<tr>';
    echo '<td class="td_entry">'.$f['citta'].'</td>';
    echo '<td class="td_entry">'.$f['societa'].'</td>';
    echo '<td class="td_entry">'.$f['nome'].'</td>';
    echo '<td class="td_entry">'.$f['gk'].'</td>';
    echo '<td class="td_entry">'.$f['isdn'].'</td>';
    echo '<td class="td_entry">'.$f['ip'].'</td>';
    echo '<td class="td_entry">'.$f['indirizzo'].'</td>';
    echo '<td class="td_entry">'.$f['referente'].'</td>';
    echo '<td class="modifica_sale">
              <a href="">
	        <img src="img/sale_img/modifica.png" border="0" />
                </a>
            </td>';
     echo '<td class="elimina_sale">
               <a href="">
                 <img src="img/sale_img/elimina.png" border="0" />
               </a>
             </td>';
     echo '</tr>';
} 
// path 
include("paginazione.php");
HTML:
</table>

$cittaritorno è una variabile di sessione impostata nella paginazione.php Serve a portare dietro la città quando si clicca sulle diverse pagine.

Grazie ugualmente per il tuo aiuto
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
motleyrulez Paginazione Tabella Bootstrap Javascript 2
B [Java] Paginazione in risposta HTTP Java 0
L [PHP] paginazione con classi vendor PHP 2
K [PHP] Paginazione Wordpress: passare variabile PHP 6
A [PHP] If e Else paginazione ok ci sono risultati no ma avanti lo stesso PHP 15
paloppa [PHP] paginazione con ajax PHP 1
O paginazione php mysql PHP 10
A [PHP] limitare counter paginazione PHP 7
V [ASP] paginazione-risultati-query-grandi-dimensioni Classic ASP 8
A [PHP] Problema paginazione motore di ricerca PHP 48
A [PHP] inserire paginazione su script php/mysql PHP 6
Marcello.Fiore Paginazione jQuery - PHP jQuery 2
elpirata [PHP] Paginazione dati estratti da una query con più condizioni PHP 17
X come modificare paginazione del tutorial PHP 0
MarcoGrazia Problema con bootstrap, saltata tutta la paginazione in IE8 HTML e CSS 1
F paginazione record di una query Classic ASP 5
Luca13 ASP Easy-News paginazione Classic ASP 2
G Problema di Indice e Paginazione PHP 5
L articolo: Paginazione dei dati presenti in un file di testo - informazioni PHP 2
M Paginazione di risultati query mysql PHP 2
D Paginazione dati PDO PHP 8
zorro Help paginazione PHP 10
M Problema su numerazione paginazione php PHP 6
D [risolto] Problemi di paginazione dei risultati con una determinata query Classic ASP 4
L paginazione testo senza troncare le parole PHP 3
L testare una paginazione "Creazione di 1000 dati random in una tabella" PHP 7
L problema paginazione con valori -1 -2 -3 -4 PHP 0
N Paginazione con invio modulo PHP 0
L Paginazione file di testo PHP 3
N Script paginazione PHP 0
felino Pagina di ricerca: la paginazione non funziona WordPress 0
xone Evitare Meta Tag duplicati su paginazione php PHP 2
filippino Paginazione file txt con PHP? PHP 1
felino PHP e Paginazione Jquey PHP 2
H [RISOLTO] paginazione PHP + mysql PHP 15
M Problema Paginazione con Mod_rewrite .htaccess PHP 0
J Paginazione PHP in jQuery UI Tabs jQuery 13
ste80 interazione PHP Access con paginazione PHP 7
W Problema eliminazione ultimo record da ultima pagina di crud con paginazione PHP 2
L Paginazione con pdo. PHP 8
G Paginazione php utilizzando le api di careerjet PHP 0
G Paginazione php utilizzando le api di careerjet WordPress 1
S paginazione PHP 2
L Paginazione file evitare di inserire questi \ o altro nella get PHP 1
K problemi con paginazione tabella PHP 7
L Creare paginazione numerica PHP 3
L Problema paginazione che ripete i dati doppi PHP 1
L Paginazione elenco File da una cartella PHP 11
L probelma paginazione dati PHP 3

Discussioni simili