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

Requêtes MySQL Discussion :

[MySQL] Pb comparaison de nombres


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut [MySQL] Pb comparaison de nombres
    Bonsoir,

    J'ai une table qui est structurée de la manière suivante : Les nombres sont stockés dans une table accompagnés d'un texte dans le champ suivant.

    Donc je cherche à calculer le minimum de ces nombres, mais de récupérer le texte correspondant.

    Donc j'ai mis le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $nombre1=$row[4];
    $n=5;
    for ($k=6; $k<=16; $k += 2)
    	{ 
    	echo($row[k]);
    	$nombre2=$row[k];
    	if ($nombre2 < $nombre1) { $nombre1=$nombre2 ; $n=$k+1; }
    	}
    Quand j'utilise cette portion de code, le résultat n'est pas bon car il me dit que le nombre minimum = 0 alors que je n'ai pas de 0 dans la table.

    Quand j'utilise la fonction min (....) j'ai le bon résultata, seulement je ne peux pas récupérer le texte qui correspond à ce nombre (le champ suivant le nombre).

    Comment faire ?

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    En sql bien sur !

    SELECT * FROM toto ORDER BY `nombre` ASC LIMIT 1

    bye

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Mais comment tirer les infos alors qu'il ya 20 champs, car qd je fais select * je n'ai toujours pas le numéro du champ qui correspond au nombre minimum.

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Explicite un peu plus la structure de ta table stp.

    du style
    table1
    - id
    - nom
    - truc
    ..
    table2
    - id
    - idtruc
    ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Ya une seule table :

    la structure :

    id (int)
    nombre1 (double)
    texte1
    nombre2
    texte2
    .
    .
    .
    nombre7
    texte7

    Voilà. Donc je veux connaitre quel est le nombre minimum et c'est quel texte que je dois lui associer.

  6. #6
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Ah ouais d'accord

    En supposant que je comence cela :
    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
     
     
    $sql = "SELECT ...";
    $query =...
     
    $res = mysql_fetch_array($query);
     
    $AssociatedText = "";
    $CurMin = $res["nombre1"];
    for( $i=1; $i <=  7; $i++)
    {
      	echo $i." ----- ".$res["nombre".$i]."<br>";
        if( $res["nombre".$i] < $CurMin ) 
        {
    		$CurMin = $res["nombre".$i];
    		$AssociatedText = $res["texte".$i];
    	}
    }

    Mais bon la structure de ta table n'est pas bonne à mon avis.
    bye

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    La structure de la table est bonne car je l'utilise depuis des années.

    Le code que tu m'a filé est pareil que le mien, mais ça marche tjs pas



    ça compare les prix et ça donne 0 à la fin c'est pas normal car sur acun des nombres il n'ya 0.

  8. #8
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    j'avais pas bien lu ton script

    Mais bon la sa fonctionne :

    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
     
    <?php
     
    $res = array();
    $res["nombre1"] = rand(0 , 50);
    $res["text1"] = "1";
    $res["nombre2"] = rand(0 , 50);
    $res["text2"] = "2";
    $res["nombre3"] = rand(0 , 50);
    $res["text3"] = "3";
    $res["nombre4"] = rand(0 , 50);
    $res["text4"] = "4";
    $res["nombre5"] = rand(0 , 50);
    $res["text5"] = "5";
    $res["nombre6"] = rand(0 , 50);
    $res["text6"] = "6";
    $res["nombre7"] = rand(0 , 50);
    $res["text7"] = "7";
     
     
     
     
    $AssociatedText = "";
    $CurMin = $res["nombre1"];
    for( $i=1; $i <=  7; $i++)
    {
      	echo $i." ----- ".$res["nombre".$i]."<br>";
        if( $res["nombre".$i] < $CurMin ) 
        {
    		$CurMin = $res["nombre".$i];
    		$AssociatedText = $res["texte".$i];
    	}
    }
     
    ?>
    ----------------------------------------------------------
    ---------------------------------------------------------
    <br/>
    <?php echo $CurMin; ?>
    donc comme sa je vois pas trop, peut être que l'erreur ne se situe pas la :/

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    ça marche nikel merci !! super !

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

Discussions similaires

  1. [FAQ] [MySQL 4.1.9] nombre de tables d'une base
    Par ADSL[fx] dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/05/2006, 09h29
  2. PHP & MySQL : Problème pour compter nombre de tuples ?
    Par ExSter dans le forum Requêtes
    Réponses: 6
    Dernier message: 09/05/2006, 23h03
  3. Comparaison string nombre
    Par yanndublanche dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2005, 14h51
  4. Comparaison de nombre dans un tableau.
    Par slackjayo dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 29/04/2005, 17h21
  5. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 16h32

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