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

Langage PHP Discussion :

Réaliser un tableau de conversion d'unité


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Réaliser un tableau de conversion d'unité
    Bonjour.
    Je suis actuellement en train de refaire mon site de math et je me heurte à un problème :

    Je souhaiterais insérer un nombre décimal (par exemple 1203.45) dans un tableau de conversion linéaire (kg,hg,dag,g,dg,cg,mg par exemple), mais je ne sais pas par où commencer ...

    L'idée serait de mettre, si on souhaite convertir 1203.45 dag, ce nombre au bon endroit (le "3" dans la colonne des "dag" et le reste au bon endroit).

    Je ne vois pas du tout comment faire. Est-ce que quelqu'un a une idée par hasard ?

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Points : 470
    Points
    470
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form method="POST" action="convertir.php"><input type="text" name="valeur"><input type="select" name="unite">
    <option value="1000000">Kg</option>
    <option value="100000">Hg</option>
    <option value="10000">Dag</option>
    <option value="1000">g</option>
    <option value="100">dg</option>
    <option value="10">cg</option>
    <option value="1">mg</option>
    </select></form>
    fichier convertir.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
       $tabu = array(0 => 'kg', 1 => 'hg', 2 => 'dc', 3 => 'g', 4 => 'dg', 5 => 'cg', 6 => 'mg');
       round(floatval($_POST['valeur']) * floatval($_POST['unite'])); // $val en milligrammes
       $tab = str_split($val);
       echo '<table>';
       foreach($tab as $k => $v)
          echo '<tr><td style="border:1px solid #000;">'.$tabu[$k].'</td><td style="border:1px solid #000;">'.$v.'</td></tr>';
       echo '</table>';
    ?>

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je verrais ça comme ça :

    En considérant ton chiffre comme une chaine, tu découpes la partie gramme et au dela de la partie en dessous des grammes.
    Tu fais ensuite une lecture chiffre à chiffre que tu ranges dans des tableaux.

    exemple :
    738.24g
    partie supérieure : array(0=>8, 1=>3, 2=>7)
    partie inférieure : array(-1=>2, -2=>4)

    Tu ne plus qu'a construire ton tableau HTML :
    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
     
     
    // $tableau = array(0=>8, 1=>3, 2=>7, -1=>2, -2=>4);
     
    $units = array(3=>"kg",2=>"hg", 1=>"dag", 0=>"g", -1=>"dg", -2=>"cg", -3=>"mg");
     
    foreach ($units as $key=>$unit) {
       $header .= '<th>' . $unit . '</th>';
       $ligne .= '<td>';
       $ligne .= (isset($tableau[$key]) ? $tableau[$key] : "nbsp;";
       $ligne .= '<td>';
    }
     
    echo '<table>
    <tr>' . $header . '</tr>
    <tr>' . $ligne . '</tr>
    </table>';

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Je ne comprends rien aux deux codes mais le second semble plus adapté à ce que je veux dans la mesure où j'ai déjà le nombre.

    Cependant, le second code génère une erreur : unexpected ";" au niveau de la ligne du isset (ça, c'est sur mon serveur).

    En local, cette même ligne génère une autre erreur : parse error.

    Comme je n'y comprends rien, je ne sais même pas ce qui cloche?

    De plus, comment construire le tableau $tableau à partir de mon nombre ?

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Points : 470
    Points
    470
    Par défaut
    Houlà, il semblerait qu'il te manque les bases de la programmations là...

    Pour le 2ème code, il suffit d'enlever la 1er parenthèse de la ligne.

    Pour le 1er code, je réalise que j'ai fait une erreur de copier/coller, la 2eme ligne se lit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $val = round(floatval($_POST['valeur']) * floatval($_POST['unite']));
    et non

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    round(floatval($_POST['valeur']) * floatval($_POST['unite']));
    Et si tu as déjà le nombre, tu as juste a l'assigner dans $val et à le multiplier par x ou x est une valeur associée à l'unité : 1 pour le mg, [...] 1000 pour le g, [...] 1000000 pour le kg.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Merci pour cette remarque ... En fait, ce n'est pas qu'il me manque les bases (bien que je suis loin de tout savoir bien entendu ... vu que je suis ici ), mais ce sont mes yeux qui me font faux bond, n'ayant pas vu qu'il y avait une parenthèse en trop.

    J'en ai aussi profité pour rectifier l'erreur du '</td>' à la place du '<td>' à la dernière ligne du foreach.

    Donc là, ça va. Je vais tenter de voir ce que je peux faire maintenant avec ma variable pour la transformer en tableau.

    Merci beaucoup. Votre aide m'a été précieuse.

    EDIT : le problème est que les codes ne fonctionnent pas ... Si je souhaite convertir 10.23 kg par exemple, le point se met dans une colonne (avec le premier script) et est considéré comme nombre (ce qui est faux). De plus, pour cet exemple, le "0" n'est pas dans la bonne colonne si j'utilise le second script ...

  7. #7
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Points : 470
    Points
    470
    Par défaut
    Citation Envoyé par masiuxus Voir le message
    EDIT : le problème est que les codes ne fonctionnent pas ... Si je souhaite convertir 10.23 kg par exemple, le point se met dans une colonne (avec le premier script) et est considéré comme nombre (ce qui est faux)
    Parce que tu as pas fait la multiplication comme je l'ai dit !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $val = 13.35 * 1000000;
    Puis tu lances le 1er scripts.

    Pour que le programme puisse marcher, il faut OBLIGATOIREMENT que tu donnes l'unité de départ, dune façon ou d'une autre... Si tu mets juste 13.45, comment pourrait-il savoir ce que c'est ? (et c'est pour ça que j'ai proposé en 1er lieu un interface de selection de l'unité).

Discussions similaires

  1. tableau de conversion/ equivalence
    Par boutchz dans le forum Access
    Réponses: 4
    Dernier message: 14/03/2006, 16h22
  2. Créer des fonctions de conversion d'unités
    Par frenzy dans le forum Langage
    Réponses: 6
    Dernier message: 01/03/2006, 10h52
  3. Réaliser un tableau sans tracer de lignes
    Par youp_db dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 13/01/2006, 10h14
  4. Réaliser un tableau sous access
    Par andyvo dans le forum Access
    Réponses: 2
    Dernier message: 28/12/2005, 13h54
  5. Pb pour se servir d'un tableau dans une autre unité
    Par libititi dans le forum Langage
    Réponses: 7
    Dernier message: 08/06/2005, 12h40

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