dividere risultati in pagine MySqli

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
Salve a tutti,
Ho un vecchio script che ho cercato alla buona di modificare in Mysqli
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 > 0 && $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
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>";

dove sbaglio?
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, prima di visualizzare i risultati devi ripetere la query usando il LIMIT e il parametro $start che hai creato
PHP:
$query = "SELECT * FROM news LIMIT $start , $per_page";
$result = mysqli_query($connection, $query);
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
Ciao, prima di visualizzare i risultati devi ripetere la query usando il LIMIT e il parametro $start che hai creato
PHP:
$query = "SELECT * FROM news LIMIT $start , $per_page";
$result = mysqli_query($connection, $query);

Grazie mille criric, ora funziona perfettamente!!!


Lo sapevo che era una "cavolata" e che dimenticavo qualcosa.
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
OK mi sono dimenticato una cosa.

Ora posso aggiungere dopo il LIMIT ORDER BY DESC??

Per far si che parte dall'ultimo record fino ad arrivare al primo, per intenderci.
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
135
0
16
Roma
Ok mi sono risposto da solo ahahahahahahah

PHP:
$query = "SELECT * FROM news ORDER BY ID DESC LIMIT $start , $per_page";
$result = mysqli_query($dbc, $query);
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Dividere risultati per data e pagine diverse PHP 17
M Dividere risultati in colonna in base al contenuto PHP 9
camilia Come posso dividere le grandi dimensioni del file PST? Windows e Software 2
gandalf1959 [PHP] Dividere un campo di testo in più campi PHP 9
P [HTML] [PHP] dividere lo schermo in tre colonne HTML e CSS 110
L [WordPress] Dividere articoli in più pagine, problemi SEO? WordPress 2
M Dividere immagine a metà in diagonale Photoshop 1
Z Dividere settimane PHP 3
M Dividere su piu pagine un articolo lungo prelevato da db. jQuery 0
P Dividere lo schermo in tre colonne HTML e CSS 1
G Dividere stringa ed eseguire query PHP 3
P Dividere lo schermo in tre colonne HTML e CSS 6
L Dividere classe in più parti PHP 3
S Dividere una textarea PHP 1
A Dividere array multidimensionale in altri array multidimensionali PHP 9
A dividere il risultato di una Query in più pagine Classic ASP 1
redevilduil dividere la gallery in pagine con php PHP 3
C Dividere un div in due colonne Javascript 2
U E' possibile dividere un' immagine o un background in celle? jQuery 0
M Dividere Stringhe per MySQL PHP 6
E e se volessi dividere le mie pagine? PHP 2
renoir09 software dividere sql su mac Database 1
haringk Dividere ciclo in più parti PHP 12
C dividere un'immagine in più parti Webdesign e Grafica 3
L Dividere campo PHP 2
S dividere un wmv con movie maker Windows e Software 0
A dividere dato 32 bit in 4 byte Programmazione 2
B dividere Home Page in 5 sezioni con CSS HTML e CSS 1
metalgemini dividere in piu colonne il risultato di una query Classic ASP 4
G come dividere la pagina in 2 frame??!! HTML e CSS 5
M Come si fa a dividere un documento in più colonne in dreamweaver Flash 0
F stampare a video i risultati della query PHP 1
P Passare i risultati di un foreach in un modal. Help! PHP 2
G eseguire calcoli matematici su risultati 2 tabelle mysql PHP 4
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3
S come togliere un post dai risultati di google? Supporto Mr.Webmaster 5
M Filtrare risultati con valori checkbox passati con jquery jQuery 2
M [PHP] Mostrare risultati di una tabella ma solo se ID è attivo PHP 0
A [MySQL] Ottenere più risultati in un unico campo MySQL 7
Alex_70 [PHP] Ricerca con risultati cliccabili PHP 21
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
A [PHP] If e Else paginazione ok ci sono risultati no ma avanti lo stesso PHP 15
G [PHP] operazione matematica tra risultati di query PHP 5
Sangy PHP risultati negativi in rosso PHP 2
P Google risultati di ricerca inappropriati SEO e Posizionamento 1
D [PHP] questi risultati in una tabella PHP 4
trattorino [PHP] Risultati dentro array precisi e confrontabili PHP 7
MikSkagit [PHP] Risultati a video sulla stessa riga PHP 12
V [ASP] paginazione-risultati-query-grandi-dimensioni Classic ASP 8
L [PHP] Creare un uploader di file csv xls e ricercare i risultati PHP 0

Discussioni simili