Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    dividere risultati in pagine MySqli

    Salve a tutti,
    Ho un vecchio script che ho cercato alla buona di modificare in Mysqli
    Codice PHP:

    // Variabili del Database
    $server 'localhost';
    $user 'user';
    $pass 'password';
    $db 'tabella';
     
    // Connessione al Database
    $connection mysqli_connect($server$user$pass$db)
    or die (
    "Non connesso ... \n" mysqli_error ());

     
            
    // numero di risultati da visualizzare per pagina
            
    $per_page 3;
     
            
    // calcola le pagine totali
            
    $result mysqli_query($connection"SELECT * FROM news");
            
    $total_results mysqli_num_rows($result);
            
    $total_pages ceil($total_results $per_page);
     
            
    // controlla se la variabile 'page' è impostata nell'URL (es: vedi-pag.php?page=1)
            
    if (isset($_GET['page']) && is_numeric($_GET['page']))
            {
                    
    $show_page $_GET['page'];
     
                    
    // mi assicuro che il valore di $show_page sia valido
                    
    if ($show_page && $show_page <= $total_pages)
                    {
                            
    $start = ($show_page -1) * $per_page;
                            
    $end $start $per_page;
                    }
                    else
                    {
                            
    // errore - mostra il primo set di risultati
                            
    $start 0;
                            
    $end $per_page;
                    }
            }
            else
            {
                    
    // se la pagina non è impostata, mostra il primo set di risultati
                    
    $start 0;
                    
    $end $per_page;
            }
     
            
    // visualizza impaginazione
     
            
    echo "<p><a href='vedi.php'>Visualizza Tutto</a> | <b>Visualizza impaginato:</b> ";
            for (
    $i 1$i <= $total_pages$i++)
            {
                    echo 
    "<a href='vedi-pag.php?page=$i'>$i</a> ";
            }
            echo 
    "</p>"
          
    // visualizza i dati in tabella
            
    echo "<table border='1' cellpadding='10'>";
            echo 
    "<tr> <th>ID</th> <th>Titolo</th><th>News</th> <th>Autore</th><th>Quando</th> <th></th> <th></th></tr>";
     
            
    // loop tra i risultati della query del database, visualizzandoli in tabella
            
    for ($i $start$i $end$i++)
            {
                if(
    $result){
        while(
    $row mysqli_fetch_assoc($result) ){
            
    // do your stuff
        
    $quando = new DateTime($row['quando']);

                    
    // mi assicuro che PHP non cerchi di mostrare risultati che non esistono
                   // if ($i == $total_results) { break; }
     
                    // emissione del contenuto di ogni riga in una tabella
                    
    echo "<tr>";
                    echo 
    '<td>' $row['ID'] . '</td>';
                    echo 
    '<td>' $row['titolo'] . '</td>';
                    echo 
    '<td>' $row['testo'] . '</td>';
                    echo 
    '<td>' $row['chi'] . '</td>';
                    echo 
    '<td>' $quando->format('d/m/Y') . '</td>';
                    echo 
    '<td><a href="modifica.php?ID=' $row['ID'] . '" ><img src="img/mod.jpg" title="Modifica '.$row['titolo'].'"  width="49" height="47"></a></td>';
                    echo 
    '<td><a href="cancella.php?ID=' $row['ID'] . '"><img src="img/canc.jpg" title="Cancella '.$row['titolo'].' ATTENZIONE: la cancellazione e IRREVERSIBILE!!!" width="39" height="39"></a></td>';
                    echo 
    "</tr>";
            }}}
            
    // chiude la tabella>
            
    echo "</table>";
     
            
    // impaginazione 
    Bene questo script mi fa vedere tutti i risultati solo la divisione dei link delle pagine funziona
    Codice PHP:
     echo "<p><a href='vedi.php'>Visualizza Tutto</a> | <b>Visualizza impaginato:</b> ";
            for (
    $i 1$i <= $total_pages$i++)
            {
                    echo 
    "<a href='vedi-pag.php?page=$i'>$i</a> ";
            }
            echo 
    "</p>"

  2. #2
    Ho trovato la soluzione ^^ e la condivido con tutti nel caso a qualcuno interessi.

    Ho dimenticato di mettere il limit
    Codice PHP:
    $query "SELECT * FROM news LIMIT $start , $per_page"
    $result mysqli_query($connection$query); 
    Tutto il codice corretto
    Codice PHP:
    // Variabili del Database
    $server 'localhost';
    $user 'user';
    $pass 'password';
    $db 'tabella';
     
    // Connessione al Database
    $connection mysqli_connect($server$user$pass$db)
    or die (
    "Non connesso ... \n" mysqli_error ());

     
            
    // numero di risultati da visualizzare per pagina
            
    $per_page 3;
     
            
    // calcola le pagine totali
            
    $result mysqli_query($connection"SELECT * FROM news");
            
    $total_results mysqli_num_rows($result);
            
    $total_pages ceil($total_results $per_page);
     
            
    // controlla se la variabile 'page' è impostata nell'URL (es: vedi-pag.php?page=1)
            
    if (isset($_GET['page']) && is_numeric($_GET['page']))
            {
                    
    $show_page $_GET['page'];
     
                    
    // mi assicuro che il valore di $show_page sia valido
                    
    if ($show_page && $show_page <= $total_pages)
                    {
                            
    $start = ($show_page -1) * $per_page;
                            
    $end $start $per_page;
                    }
                    else
                    {
                            
    // errore - mostra il primo set di risultati
                            
    $start 0;
                            
    $end $per_page;
                    }
            }
            else
            {
                    
    // se la pagina non è impostata, mostra il primo set di risultati
                    
    $start 0;
                    
    $end $per_page;
            }
     
            
    // visualizza impaginazione
     
            
    echo "<p><a href='vedi.php'>Visualizza Tutto</a> | <b>Visualizza impaginato:</b> ";

            for (
    $i 1$i <= $total_pages$i++)
            {
                    echo 
    "<a href='vedi-pag.php?page=$i'>$i</a> ";
            }
            echo 
    "</p>"
          
    // visualizza i dati in tabella
            
    echo "<table border='1' cellpadding='10'>";
            echo 
    "<tr> <th>ID</th> <th>Titolo</th><th>News</th> <th>Autore</th><th>Quando</th> <th></th> <th></th></tr>";




           
    // LIMIT con la scelta che ho effettuato e il conteggio dei risultati per pagina
           
    $query "SELECT * FROM news LIMIT $start , $per_page"
           
    $result mysqli_query($connection$query);  



            
    // loop tra i risultati della query del database, visualizzandoli in tabella
            
    for ($i $start$i $end$i++)
            {
                if(
    $result){
        while(
    $row mysqli_fetch_assoc($result) ){
            
    // do your stuff
        
    $quando = new DateTime($row['quando']);

                    
    // mi assicuro che PHP non cerchi di mostrare risultati che non esistono
                   // if ($i == $total_results) { break; }
     
                    // emissione del contenuto di ogni riga in una tabella
                    
    echo "<tr>";
                    echo 
    '<td>' $row['ID'] . '</td>';
                    echo 
    '<td>' $row['titolo'] . '</td>';
                    echo 
    '<td>' $row['testo'] . '</td>';
                    echo 
    '<td>' $row['chi'] . '</td>';
                    echo 
    '<td>' $quando->format('d/m/Y') . '</td>';
                    echo 
    '<td><a href="modifica.php?ID=' $row['ID'] . '" ><img src="img/mod.jpg" title="Modifica '.$row['titolo'].'"  width="49" height="47"></a></td>';
                    echo 
    '<td><a href="cancella.php?ID=' $row['ID'] . '"><img src="img/canc.jpg" title="Cancella '.$row['titolo'].' ATTENZIONE: la cancellazione e IRREVERSIBILE!!!" width="39" height="39"></a></td>';
                    echo 
    "</tr>";
            }}}
            
    // chiude la tabella>
            
    echo "</table>";
     
            
    // impaginazione 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.