Help paginazione

  • Creatore Discussione Creatore Discussione zorro
  • Data di inizio Data di inizio

zorro

Utente Attivo
20 Ott 2014
333
21
28
ROMA
Salve a tutti.
Premetto che non sono molto ferrato col PHP; ho un problema con la suddivisione in pagine di una grossa tabella (circa 300 record)
Ho trovato un paio di articoli che spiegavano le tecniche della paginazione ma a me servirebbero degli esempi pratici.
Qualcuno sarebbe in grado di aiutarmi o di indicarmi dove trovare qualche esempio pratico ??
Vi ringrazio antipatamente.:byebye::byebye:
 
Ciao Marino,
ti ringrazio per la risposta. Sono andato al link che mi hai dato ma, per la verità, non è che c'ho capito molto.............
(so un po' 'de coccio').
In pratica io mi connetto al DB e leggo (e stampo a video) i primi 30 record con LIMIT 0,30 dopodichè ho inserito una funzione, copiata da internet, che mi fa apparire un link PAGINA AVANTI cliccando sul quale mi rimanda a PAGINA2.PHP. Ma questa pagina la devo costruire ?? .....e come la costruisco ??
Grrazie ancora e a presto
 
ti posto l'esempio che forniscono loro anche se io l'ho ridotto un poco per le mie prove
non ti posto la classe ma ti invito a scaricarla perché la versione che ho io, l'ho modificata per lavorare con ms sql
a me sembra facile da gestire in una pagina, se hai la pazienza di leggere anche le info a corredo
vedrai che si devono solo inserire dei parametri null'altro
il codice che ho usato per la prova lavora su una tabella di oltre 800 elementi, ma non credo ci siano vincoli
secondo me costa molto meno usare questa classe (o un'altra simile) piuttosto che svilupparsi la paginazione in proprio
questo il codice (da me solo modificato ...)
PHP:
<meta charset="utf-8" />
<?php

require_once 'PDO_Pagination.php';

$Database = 'sqlsrv:Server=*****;Database=testDB';
$dbUSER  = '*****';
$dbPASS  = '*****';

try
{
  $connection = new PDO($Database, $dbUSER, $dbPASS);  
  $connection->query("SET NAMES UTF8");
}
catch ( PDOException $e ) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }

$pagination = new PDO_Pagination( $connection );
$pagination->setLimitPerPage( 14 );
$pagination->setPaginator( 'paghex' );

$sql = "SELECT * from (";
$sql.= " SELECT";
$sql.= "  Row_Number() over ( ORDER BY color_name ) as RowIndex";
$sql.= "  ,color_id";
$sql.= "  ,color_name";
$sql.= "  ,color_hex";
$sql.= " FROM colors";
$sql.= " ) as pager";

$pagination->setSQL( $sql );

$results = $connection->query( $pagination->getSQL() );

print '<div style="float:left; margin-right: 25px">';
print '<h1>Ordered by Hexadecimal Value</h1>';

$pagination->printResultBar();

if( $pagination->getTotalOfResults() > 0 )
{
  print '<table width="800" cellpadding="4" border="1">';
  print '<tr><td></td><th>Hexadecimal</th><th>Name</th><th>Sequenza</th></tr>';

  foreach( $results as $r )
  {
    printf (
     "<tr>
        <td width=\"100\" style=\"background: %s\"></td>
        <td width=\"100\">%s</td>
        <td>%s</td>        
        <td>%s</td>        
      </tr>"
      , $r['color_hex']
      , $r['color_hex']
      , $r['color_name']
      , $r['RowIndex']
    );
  }
  print '</table>';
  $pagination->printNavigationBar();
  print '</div>';
}
$connection = null; 
?>
che fa molto è la query ....
ciao
Marino
 
Ciao Marino51,
ho ricevuto il tuo post, l'ho studiato, l'ho eseguito ma continua a darmi un errore (senza indicarmi il nr di riga, per cui non so nemmeno dove si è verificato) e poi a me oggetti, classi e simili mi rimangono un po' ostici da usare tanto che quando posso evito di usarli. Ti posto il codice che ho scritto: ( non so come si inserisce uno scrpt)

//connessione al server DB
$link_connessione=mysql_connect("localhost","provasitofl","") or die ("Connessione impossibile");

// Selezione del database
$db=mysql_select_db("my_provasitofl", $link_connessione) or die ("Database inesistente!");

// Visualizzazione dei record della tabella
$query="SELECT * FROM CCLINICHE LIMIT 0,3'0";
$tabella=mysql_query($query, $link_connessione) or die ("Attenzione: errore nella query");

//Esecuzione della query
while ($riga=mysql_fetch_array($tabella)) {
$id=$riga['ID_UTENTE'];
$cognome=$riga['COGNOME'];
$nome=$riga['NOME'];
$reparto=$riga['REPARTO'];
$data_rich=$riga['DATA_RICH'];
$num_cart=$riga['NUM_CART'];
$stato=$riga['STATO'];
$data_rit=$riga['DATA_RIT'];
$note=$riga['NOTE'];
echo "$id $cognome $nome $reparto $data_rich $num_cart $stato $data_rit $note <br>";
}

al quale ho aggiunto una funzione, scaricata da internet, che mi fa apparire i due link PAGINA AVANTI e PAGINA INDIERTO. Mi puoi aiutare ?? Grazie comunque.
Ciao. Buona giornata


Zorro
 
Vedi l'allegato PDO_Pagination.zip

estrai lo zip in una cartella,
modifica index.php inserendo i parametri di connessione al tuo database,
controlla i nomi che ho inserito, prendendoli dal tuo post, per essere sicuro che siano giusti
index.php richiama Pdo_pagination.php che deve essere nella stessa cartella
prova ad eseguirlo
fai sapere se funziona e se ti può andare bene
ciao
Marino
 
scusa, in "index.php" sostituisci l'equivalente con il codice sottostante
PHP:
if( $pagination->getTotalOfResults() > 0 ) 
{ 
  print '<table width="800" cellpadding="4" border="1">'; 
  print '<tr><th>ID_UTENTE</th><th>COGNOME</th><th>NOME</th><th>REPARTO</th>'
       .'<th>DATA_RICH</th><th>NUM_CART</th><th>STATO</th><th>DATA_RIT</th><th>NOTE</th></tr>'; 

  foreach( $results as $r ) 
  { 
    printf ( 
     "<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td>
      <td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>" 
      , $r['ID_UTENTE']
      , $r['COGNOME']
      , $r['NOME']
      , $r['REPARTO']
      , $r['DATA_RICH']
      , $r['NUM_CART']
      , $r['STATO']
      , $r['DATA_RIT']
      , $r['NOTE'] ); 
  } 
  print '</table>';
 
Ciao Marino51,
ho visto i tuoi post e avevo anche letto l'articolo sulla paginazione (ed è proprio da lì che ho scaricato la funzione).
Ora me li studio un po' e poi ti faccio sapere. Per il momento ti ringazo ancora per l'aiuto che mi hai dato.
Buona giornata e a presto


Zorro
 
Ciao Marino51,
finalmente ho risolto: ho studiato i tuoi post e tutto quello che mi hai mandato e finalmente ho risolto.
Grazie tantissimo dell'aiuto :fonzie::fonzie:


Zorro
 

Discussioni simili