- Home
- Categorie
- Coding e Sistemistica
- PHP
- Paginazione dati con esclusione degli ultimi due id inseriti
-
Paginazione dati con esclusione degli ultimi due id inseriti
Salve ragazzi. E complimenti per il forum! Questo è il mio primo messaggio.
Il problema è questo. Ho un file che esegue la paginazione di una serie di dati estratti dal database. Si tratta di articoli inseriti in apposita tabella. Vorrei che al momento della paginazione non venissero presi gli ultimi due inseriti. Come posso fare?Vi posto il codice:
[PHP]
<?php
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("errore nella connessione");
mysql_select_db("$db_name") or die ("errore nella selezione del database");
// esecuzione prima query
$count = mysql_query("SELECT COUNT(art_id) FROM articoli");
$res_count = mysql_fetch_row($count);// numero totale di records
$tot_records = $res_count[0];// risultati per pagina(secondo parametro di LIMIT)
$per_page = 5;// 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;echo "<div align="center">\n<table>\n";
// esecuzione seconda query con LIMIT
$query_limit = mysql_query("SELECT art_id, titolo FROM articoli LIMIT $primo, $per_page");
while($results = mysql_fetch_array($query_limit)) {
echo " <tr>";
echo "<td><a href="page.php?id=" . $results['art_id'] . "">" . $results['titolo'] . "</a></td>";
echo "<td><a href="modifica.php?id=" . $results['art_id'] . "">modifica</td> ";
echo "<td><a href="elimina.php?id=" . $results['art_id'] . "">elimina</td> ";
echo "</tr>";
}// includiamo uno dei files contenenti la paginazione, commentate l'altro ovviamente
include("paginazione_2.php");
//include("paginazione_1.php");// in questa cella inseriamo la paginazione
echo " <tr>\n <td height="50" valign="bottom" align="center">$paginazione</td>\n";echo " </tr>\n</table>\n</div>";
mysql_close();
?>
[/PHP]Avevo pensato di sottrarre al totale degli id il numero 2. Ma evidentemente sbaglio o il codice o il ragionamento perchè ho provato e viene fuori un macello.
Voi che suggerite?
Grazie mille
-
Ciao marckh,
benvenuto nel forum GT.
potresti provare a sostituire [php]while($results = mysql_fetch_array($query_limit)) {
[/php]
con:
[php]
while($results = array_pop(array_pop(mysql_fetch_array($query_limit)))) { [/php]
Poi dimmi se funziona,ciao!
-
Mi da un errore:
Warning: array_pop (): The argument should be an array in C:........... mi rimanda alla riga dove ho inserito la parte di codice che mi hai suggerito..:x
-
Allora prova così ;):
[php]$q = mysql_query("SELECT art_id, titolo FROM articoli LIMIT $primo, $per_page"); //esecuzione query
$res=mysql_fetch_assoc($q); // array con i risultati
$res=array_pop($res); //estraggo l ultimo elemento
$res=array_pop($res);//estraggo l ultimo elemento
while($res){
echo " <tr>";
echo "<td><a href="page.php?id=" . $results['art_id'] . "">" . $results['titolo'] . "</a></td>";
echo "<td><a href="modifica.php?id=" . $results['art_id'] . "">modifica</td> ";
echo "<td><a href="elimina.php?id=" . $results['art_id'] . "">elimina</td> ";
echo "</tr>";
} [/php]
-
Ma il codice che mi hai postato estrae tutti gli id tranne gli ultimi 2 inseriti?
-
Sì,nel post 4 per "estraggo" intendevo dire "non mostro".
-
Grazie Probid,
domattina proverò la parte di codice che mi hai suggerito. Se ci sono problmei riprendo il post. Per ora ti ringrazio per le risposte date.
Buonanotte