Salve a tutti ragazzi, sto cercando di applicare la paginazione dei dati ad una query che estrae i dati dal DB. Purtroppo gli esempi on-line sono abbastanza obsoleti e mi viene difficile adattare il codice visto che attualmente sto utilizzando PDO per le operazioni con MySQL.
Ecco il codice:
E poi tramite
includo questo script:
?>
L'errore che ricevo è il seguente:
Da quello che ho capito l'errore è nella variabile $current_page ma non riesco a trovare una soluzione, come posso risolvere? Grazie in anticipo.
Ecco il codice:
PHP:
//PAGINAZIONE DATI
$count = 'SELECT id_articolo FROM `articoli`';
$res = $pdo->query($count);
$res_count = $res->fetch(PDO::FETCH_NUM);
$tot_records = $res_count[0];
$per_page = 10;
$tot_pages = ceil($tot_records / $per_page);
$current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
$first = ($current_page - 1) * $per_page;
// SELECT ELEMENTI
$sql = 'SELECT * FROM `articoli` ORDER BY `data_articolo` DESC LIMIT $first, $per_page';
$result = $pdo->query($sql);
E poi tramite
PHP:
include("paginazione.php");
PHP:
<?php
if($current_page == 1) { // se siamo nella prima pagina
$precedente = “<< precedente”;
} else { // altrimenti
$previous_page = ($current_page – 1);
$precedente = “<a href=\”?page=$previous_page\” title=\”Vai alla pagina precedente\”><< precedente</a>”;
}
if($current_page == $tot_pages) { // se siamo nell’ultima pagina
$successiva = “successiva >>”;
} else { // altrimenti
$next_page = ($current_page + 1);
$successiva = “<a href=\”?page=$next_page\” title=\”Vai alla pagina successiva\”>successiva >></a>”;
}
$paginazione = “$precedente $successiva”;
L'errore che ricevo è il seguente:
Notice: Undefined index: page in "..." on line 65
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1327 Undeclared variable: $first' in "...":71 Stack trace: #0 "..." (71): PDO->query('SELECT * FROM `...') #1 {main} thrown in "..." on line 71
Da quello che ho capito l'errore è nella variabile $current_page ma non riesco a trovare una soluzione, come posso risolvere? Grazie in anticipo.