IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Extraire des données d'une DB Sql, classer et afficher seulement la plus faible. [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Par défaut Extraire des données d'une DB Sql, classer et afficher seulement la plus faible.
    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 :
    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>
    Vu le code écri j'obtient forcément 5 tableaux avec a l'intérieur 3 fois la même valeur.
    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.

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    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
    <?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());
    $i = 1;
    ?>
    <table border="1">
    <tr><td colspan="2">classement des éléments</td></tr>
    <?php
    while ($classement = mysql_fetch_assoc($req)) {
     
    	echo '<tr>
    			<td>N°'.$i.'</td>
    			<td>'.$classement['Score'].'</td>
    		  </tr>';
    	$i++;
    }
    //Fin connection
    mysql_free_result ($req);
    //Fermeture sql
    mysql_close ();
    ?>
    </table>
    </body>
    </html>

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Par défaut
    Merci beaucoup darkstar123456 !

    Rapide, simple, efficace. La classe totale.
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Comment extraire des données d'une page HTML ?
    Par taliesin26 dans le forum Langage
    Réponses: 1
    Dernier message: 11/12/2006, 12h39
  2. Réponses: 2
    Dernier message: 17/05/2006, 08h35
  3. [Système] Extraire des données d'une page web
    Par nazoreen dans le forum Langage
    Réponses: 17
    Dernier message: 22/03/2006, 21h38
  4. [RegEx] Extraire des informations d'une requête SQL
    Par XtofRoland dans le forum Langage
    Réponses: 13
    Dernier message: 07/03/2006, 15h59
  5. Réponses: 1
    Dernier message: 28/09/2005, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo