Dividere risultato query su più pagine

Ciao!!!

Il risultato di una query contiene molte row e per questo vorrei dividere l'output su più pagine.

sapete suggerirmi qualcosa?

Grazi a tutti!

inviato 8 anni fa
sonny
X 0 X

Dai un'occhiata all'articolo di Gianni:

http://www.phpnews.it/articoli/database/paginazione-dei-dati/

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Ciao e grazie per il link, molto utile.

nonostante tutto mi da un problema quando cerco di passare alle pagine successive alla prima.. è come se nn ricaricasse la query.. cosa posso aver dimenticato o sbagliato?

grazie!

risposto 8 anni fa
sonny
X 0 X

Posta il codice così possiamo aiutarti.

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

posto il codice della pagina che tratta la query. sia chiama ricerca_uf.php

premetto che per fare una prova ho usato il codice di gianni tale e quale com'era.

include ("paginazione.php"); //richiamo il file di gianni
include ("connect.php"); //collego al db

$righe_per_pagina = 5;
$url_base = "ricerca_uf.php";
$pagine_vicine = 1;

$id = $_GET['id_ufficio'];
$nome = $_GET['nome_ufficio'];




$result = mysql_query("SELECT COUNT(*) FROM modulo WHERE id_ufficio = '$id' 
AND data_scadenza > ".date('YmdHis')." AND visibility='1'");
// record complessivi
$tot_righe = mysql_result($result,0);

// totale pagine
$tot_pagine = ceil($tot_righe / $righe_per_pagina);



$pagina_corrente = isset($_GET['pag']) ? (int)$_GET['pag'] : 1;


if($pagina_corrente < 1) {
header('location: ' . $url_base);
exit();
}

if($pagina_corrente > $tot_pagine){
header('location: ' . crea_url($url_base, $tot_pagine));
exit();
}



$prima_riga = ($pagina_corrente - 1) * $righe_per_pagina;

$result_modulo = mysql_query("SELECT * FROM modulo WHERE id_ufficio = '$id' AND data_scadenza > ".date('YmdHis')." 
AND visibility='1' LIMIT $prima_riga, $righe_per_pagina");
$number_modulo = mysql_num_rows($result_modulo);

   $i = 0;

   if ($number_modulo < 1) {
                  print "<br/><br/><b>Al momento non sono disponibili documenti per l'utenza pubblica.</b>";
   }
   else             echo ("<br/>");
   {

      while ($row_modulo = mysql_fetch_assoc($result_modulo)) { 
               
               //qui richiamo i dati dal db e li stampo
      }//while
}//else


$link_paginazione = paginazione($tot_pagine, $url_base, $pagina_corrente, $pagine_vicine);

echo $link_paginazione;

il problema che da al momento è un errore di header quando tento di accedere alla pagina 2:

Warning: Cannot modify header information - headers already sent ...

la riga è la seguente

header('location: ' . crea_url($url_base, $tot_pagine));
risposto 8 anni fa
sonny
modificato 8 anni fa
X 0 X

C'è qlc che sa come risolvere il problema?

risposto 8 anni fa
sonny
X 0 X

Quel tipo di problema si verifica quando generi dell'output prima della istruzione header. Ad esempio quando uni la funzione print o eco prima di header(). La causa dell'errore è subdola poiché anche un messaggio di warning o notice generati da PHP prima di incotrare header() costituiscono un output. Un'altra causa piuttosto diffusa è la presenza di "a capo" o "spazi" prima dell'inizio dello script, ovvero prima del tag <?php, questi caratteri costituiscono un output che non può essere prodotto prima dell'esecuzione di header()

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda