2010-06-22 12 views
6

Sono nuovo a PHP e SQL, e ho una piccola domanda su come realizzare query SQL, che può:PHP/MySQL paginazione

  • Prendiamo ad esempio 5 voci da DB, inserire loro il 1 ° pagina (1-5)
  • Than prendere prossimi 5 voci dalla stessa DB e inserirle in un'altra pagina (5-10)
    e così via :)

Grazie)

+0

possibile duplicazione di [impaginazione MySQL senza doppio interrogazione?] (Http://stackoverflow.com/questions/818567/mysql-pagination-without-double-querying) –

risposta

5
SELECT col FROM table LIMIT 0,5; -- First page, rows 1-5 
SELECT col FROM table LIMIT 5,5; -- Second page, rows 6-10 
SELECT col FROM table LIMIT 10,5; -- Third page, rows 11-15 

Leggi l'helppage LIMIT section on the MySQL SELECT. Se si desidera visualizzare il numero totale di righe disponibili, è possibile eseguire un conteggio aggiuntivo o utilizzare la funzione ROW_COUNT.

0

Ci sono diversi modi per fare questo, penso che le prestazioni più veloci sta seguendo uno:

$ItemsPerQuery = 5; 
$CurrentPage = 0; //here you can add the current site through $_GET array or other ways, but don't forget to use mysql_real_escape_string(), because of mysql injection 

$Query = mysql_query("SELECT * FROM table LIMIT ".($ItemsPerQuery*$CurrentPage).",".$ItemsPerQuery); 

while($row = mysql_fetch_assoc($query)) 
{ 
    echo $row['column_name']; 
} 

Stuff si dovrebbe usare:

+0

Sì, beh grazie) Ho qualcosa di simile a questo nella mia testa, ma non avevo idea di come realizzarlo nel modo giusto. – user313216

+0

Questo non è giusto, la pagina 1 non mostrerà le prime 5 voci, il limite iniziale è 1 * 5, dovrebbe essere 0 e complessivamente dovrebbe essere ($ ItemsPerQuery * $ CurrentPage - $ ItemsPerQuery) – cypher

+0

uhm, true :) il '$ CurrentPage' dovrebbe essere 0, perché 0 * 5 = 0. spiacente –

0

Se la tua query non restituisce un divieto quantità di risultati, si consideri l'utilizzo di Jquery per la pagina con una funzione Tablesorter. Prende una tabella HTML correttamente formattata e pagine, ordinamenti, ecc al volo ... non c'è bisogno di variabili di query aggiuntive se non lo si desidera. È molto più semplice dell'andare per tutto il percorso di paging PHP ed è molto più veloce per l'utente.

Il mio esempio preferito è qui: http://datatables.net/

Esso non può soddisfare pienamente le vostre esigenze, ma è freddo per molte applicazioni. Se lo fai, non dimenticare di formattare il tavolo con thead e tbody in modo che possa raccogliere correttamente gli elementi del tavolo.