Bonjour tout le monde,
J'ai un petit souci avec le Limit Mysql.
J'effectue plusieurs requêtes qui me permettent d'obtenir plusieurs colonnes de résultat.
Je fais donc une première requête pour compter le nombre de résultats. Je divise ce nombre de résultat par 4, et je crée 4 requêtes avec LIMIT qui me permette normalement de découper le résultat en 4 sous groupe.
Voici la page sur laquelle ca ne fonctionne pas (vous pouvez voir clairement les requête dans le contenu de la page.
Sinon pour ceux qui n'ont pas le temps de cliquer sur ce lien, voici la requete qui compte le nombre de résultats :
Puis je découpe le nombre de résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $compt_req = "SELECT id FROM pun_1users WHERE group_id = '1' OR group_id = '2' OR group_id = '7';"; $compt_res = mysql_query($compt_req); $counte=mysql_num_rows($compt_res);
Puis je créer mes 3 autres variable pour mes limit de requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $quart = ceil($counte / 4);
Ainsi je crée mes 4 requêtes mysql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $double_quart = ceil(2 * $quart); $triple_quart = ceil(3 * $quart);
Voici les requêtes une fois éxecuté pour être le plus clair possible :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $condition = "SELECT id, username, use_avatar, date_naissance FROM pun_1users WHERE (group_id = '1' OR group_id = '2' OR group_id = '7') ORDER BY username ASC limit"; $list_memb_req = $condition." 0, ".$quart.";"; $list_memb_res = mysql_query($list_memb_req); $list_memb_req_1 = $condition." ".$quart.", ".$double_quart.";"; $list_memb_res_1 = mysql_query($list_memb_req_1); $list_memb_req_2 = $condition." ".$double_quart.", ".$triple_quart.";"; $list_memb_res_2 = mysql_query($list_memb_req_2); $list_memb_req_3 = $condition." ".$triple_quart.", ".$counte.";"; $list_memb_res_3 = mysql_query($list_memb_req_3);
Ensuite je retourne mes résultats dans mon contenu html :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT id, username, use_avatar, date_naissance FROM pun_1users WHERE (group_id = '1' OR group_id = '2' OR group_id = '7') ORDER BY username ASC limit 0, 8; SELECT id, username, use_avatar, date_naissance FROM pun_1users WHERE (group_id = '1' OR group_id = '2' OR group_id = '7') ORDER BY username ASC limit 8, 16; SELECT id, username, use_avatar, date_naissance FROM pun_1users WHERE (group_id = '1' OR group_id = '2' OR group_id = '7') ORDER BY username ASC limit 16, 24; SELECT id, username, use_avatar, date_naissance FROM pun_1users WHERE (group_id = '1' OR group_id = '2' OR group_id = '7') ORDER BY username ASC limit 24, 29;
Et bizarrement, les LIMIT sont soit mal interprété ou autre, mais il va me mettre 8 résultat dans ma première colonne, 16 dans la deuxième, 16 dans la troisième, et me remettre les 8 derniers résultats dans ma dernière colonne (alors qu'il y était dans ma troisième colonne).
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
33
34
35
36
37
38
39 <div class="colonne_gauche"> <ul class="gestion"> <?php while($list_memb = mysql_fetch_assoc($list_memb_res)){ require('row.php'); } ?> </ul> </div> <div class="colonne_gauche"> <ul class="gestion"> <?php while($list_memb = mysql_fetch_assoc($list_memb_res_1)){ require('row.php'); } ?> </ul> </div> <div class="colonne_gauche"> <ul class="gestion"> <?php while($list_memb = mysql_fetch_assoc($list_memb_res_2)){ require('row.php'); } ?> </ul> </div> <div class="colonne_droite"> <ul class="gestion"> <? while($list_memb = mysql_fetch_assoc($list_memb_res_3)){ require('row.php'); } ?> </ul> </div>
Cela fait quelques heures que je tourne en rond sans rien comprendre.
Merci pour votre aide !
Bien cordialement,
Sylvain
Partager