• User

    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


  • Super User

    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! 😉


  • User

    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


  • Super User

    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]


  • User

    Ma il codice che mi hai postato estrae tutti gli id tranne gli ultimi 2 inseriti?


  • Super User

    Sì,nel post 4 per "estraggo" intendevo dire "non mostro". 😄 😉


  • User

    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 :ciauz: