Bonjour,
J'ai un problème de syntaxe pour extraire de ma base des données en les classant en même temps par ordre croissant et surtout en ne prenant que la plus faible, puis seulement la deuxième plus faible puis seulement la troisième plus faible, et au final les afficher, classées, dans un tableau. En fait je suis limité par mon côté novice et le manque de connaissance syntaxique. J'ai cru comprendre en cherchant dans les forums qu'il fallait faire des requêtes SQL imbriquées et là ça me dépasse. Je vous donne les éléments. Pourriez vous m'aider a écrire cette partie de code?
Base de donnée : probabilite
---------------
|Element|Score|
---------------
| 1 | 25 |
---------------
| 2 | 10 |
---------------
| 3 | 5 |
---------------
| 4 | 18 |
---------------
| 5 | 12 |
---------------
Le but est d'obtenir quelque chose du genre :
--------------
| Classement |
|des elements|
--------------
| N°1 | 3 |
--------------
| N°2 | 2 |
--------------
| N°3 | 5 |
--------------
Voici le code écris :
Vu le code écri j'obtient forcément 5 tableaux avec a l'intérieur 3 fois la même valeur.
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
40
41
42 <?php include("fonctions.php"); ?> <html> <head><title>test classement</title></head> <body> <?php //connection connectMaBase(); // Classement par score $sql = 'SELECT Element, Score FROM probabilite ORDER BY Score ASC'; $req = mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br :>'.mysql_error()); while ($classement = mysql_fetch_array($req)) { $classement1=$classement['Numero']; $classement2=$classement['Numero']; $classement3=$classement['Numero']; echo '<table border="1"> <tr> <td colspan="2">classement des éléments</td> </tr> <tr> <td>N°1</td> <td>'.$classement1.'</td> </tr> <tr> <td>N°2</td> <td>'.$classement2.'</td> </tr> <tr> <td>N°3</td> <td>'.$classement3.'</td> </tr> </table>'; } //Fin connection mysql_free_result ($req); //Fermeture sql mysql_close (); ?> </body> </html>
J'aimerais n'avoir qu'un tableau avec les trois valeurs classées. N'existe t-il pas une syntaxe simple de la ligne " $classement1=$classement['Numero']; " pour que $classement ne prenne que la première valeur de la colonne "Score" ?
Merci de votre aide.
Partager