Bonjour,
J'utilise le code qui suit pour afficher des messages personnels. Il y a une limite de 20 messages pas pages. Si j'ai 1000 messages j'aurai donc 50 pages, ce qui à la longue peut entrainer du temps au chargement.
Je voudrais donc limiter l'affichage à 50 messages donc mettre un ORDER BY DESC LIMIT 50, mais je ne sais pas trop ou l'employer.
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 //NOMBRE DE ROWS PAR PAGES define("NB_ROW_PAR_PAGE", 20); //COUNT IDmessage de $account pour préparer le calcul des pages $req = mysql_query("SELECT COUNT(IDmessage) AS total FROM `messagerie` WHERE Pour=".$account""); $row = mysql_fetch_array($req); $num_rows = $row['total']; $nb_pages_total = ceil($num_rows/NB_ROW_PAR_PAGE); //CALCUL PAGES ET ROWS if(isset($_GET['page']) AND is_numeric($_GET['page']) AND $_GET['page'] > 0 AND $_GET['page'] <= $nb_pages_total) { $page_num = $_GET['page']; $start_row = $page_num * NB_ROW_PAR_PAGE; $start_row -= NB_ROW_PAR_PAGE; } else { $page_num = 1; $start_row = 0; } $text_limit_query = "LIMIT ".$start_row.", ".NB_ROW_PAR_PAGE.""; mysql_free_result($req); //SELECT et affichage des messages $req = mysql_query("SELECT tp.Nom Expediteur, tm.* FROM `compte` tp RIGHT JOIN `messagerie` tm ON tm.De = tp.ID WHERE tm.Pour=".$account" ORDER BY tm.IDmessage DESC $text_limit_query"); while($msg = mysql_fetch_assoc($req)) { // code } mysql_free_result($req);
Partager