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 :

Affectation valeur d'une variable.


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 42
    Points
    42
    Par défaut Affectation valeur d'une variable.
    Bonjour,

    je stock dans une table les cours de change de certaines devises sous cette forme:
    table : cours_devises
    id | pays | Value
    1 | CHF | 1.211
    2 | USD | 1.29
    3 | GBP | 1.45

    Dans une autre table je stock des montants en devises par produits ex:
    table : clients
    id | code_prod | designation | prix _devise | pays | client
    1 | 0010 | prod 1 | 15 | CHF | 100
    2 | 0012 | prod 2 | 11 | USD | 100
    3 | 021 | prod 3 | 24 | GBP | 100
    4 | 0302 | prod 6 | 52 | USD | 101
    5 | 0172 | prod 7 | 9 | USD | 101
    6 | 1512 | prod 8 | 31 | CHF | 101

    Une requete extrait de la table clients tous les produits détenus par le client (ex client N° 100) et les affichent dans le navigateur sous cette forme:
    Designation P en Dev Dev Valeur en Euro
    prod 1 | 15 | CHF | ?
    prod 2 | 11 | USD | ?
    prod 3 | 24 | GBP | ?

    il faut donc que j'affecte en face de chaque montant en devise, le cours de la devise stockée dans la table cours_devises

    j'ai essayer avec ce bout de script qui ne fonctionne pas, la devise affectée est toujours la première stockée dans la table (cours_devises)...
    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
     
    <?php
    $value = $data110['prix_devise'] . $data110['pays'];<-- ces variables proviennent du script principal
    echo $value;
    // CONNEXION A LA DB
    include ('x.php');
    // APPEL DE LA TABLE DEVISES
    $sql200 = "SELECT * FROM cours_devises";
    $req200 = mysql_query($sql200) or die('Erreur SQL !<br>'.$sql200.'<br>'.mysql_error());
    while($data200 = mysql_fetch_assoc($req200))
    if ($data200['pays'] == 'CHF' AND $data110['prix_devise'] == 'CHF') {$cours_chf = $data200['P en Dev'];echo $cours_chf;}
    if ($data200['pays'] == 'USD' AND $data110['prix_devise'] == 'USD') {$cours_usd = $data200['P en Dev'];echo $cours_usd;}
    if ($data200['pays'] == 'CAD' AND $data110['prix_devise'] == 'CAD') {$cours_cad = $data200['P en Dev'];echo $cours_cad;}
     
    if ($data110['prix_devise'] == 'CHF') {$TESTCOURS = $cours_chf;}
    if ($data110['prix_devise'] == 'USD') {$TESTCOURS = $cours_usd;}
    if ($data110['prix_devise'] == 'EUR') {$TESTCOURS = '1';}
     
    if ($data200['pays'] == 'CHF' AND $data110['prix_devise'] == 'CHF') {$Fcurr = $data110['P en Dev']/$cours_chf; echo $Fcurr;}
    if ($data200['pays'] == 'USD' AND $data110['prix_devise'] == 'USD') {$Fcurr = $data110['P en Dev']/$cours_usd; echo $Fcurr;}
    if ($data200['pays'] == 'CAD' AND $data110['prix_devise'] == 'CAD') {$Fcurr = $data110['P en Dev']/$cours_cad; echo $Fcurr;}
    if ($data200['pays'] == 'EUR' AND $data110['prix_devise'] == 'EUR') {$Fcurr = $data110['P en Dev']; echo $Fcurr;}
    ...
    ?>
    merci de vos aides.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Sans regarder plus sur la requête (il me semble que tu peux l'arranger), tu es sûr de tes tests avec le nom des champs ?

    Comme par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($data200['pays'] == 'CHF' AND $data110['prix_devise'] == 'CHF')
    C'est pas $data110['pays']
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 42
    Points
    42
    Par défaut
    En effet, il y a une erreur avec les champs. j'ai posté le script tel que je me suis arrêté hier.
    mais le soucis n'est pas vraiment là.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $value = $data110['prix_devise'] . $data110['pays'];<-- ces variables proviennent du script principal
    la variable s'affiche de cette manière:
    901.55CHF
    3721.52EUR
    25359.75USD
    les cours des devises s'affichent eux aussi correctement dans le même ordre de classement que ci-dessus.
    1.211
    1
    1.29

    en faite je ne sais pas créer la bonne condition qui dit:

    si $montantCHF posséde CHF, $valeur_en_Euro = montantCHF / $cours_devise
    si $montantEUR posséde EUR, $valeur_en_Euro = montantEUR
    si $montantUSD posséde USD, $valeur_en_Euro = montantUSD / $cours_devise

    +

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 42
    Points
    42
    Par défaut
    J'ai trouvé une solution fonctionnelle, peu être pas très propre a vos yeux, mais fonctionnelle, je suis preneur de toute amélioration.
    Merci Fench.
    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
    <?php
    $value = $data110['value']; <-- valeur en devise stockée dans une DB
    // echo $value;
    $EUR ='1'; <-- afin de contourner le soucis de division plus bas
    // CONNEXION A LA DB
    include ('x.php');
    // APPEL DE LA TABLE DEVISES 
    $sql200 = "SELECT * FROM devises";
    $req200 = mysql_query($sql200) or die('Erreur SQL !<br>'.$sql200.'<br>'.mysql_error());
    while($data200 = mysql_fetch_assoc($req200))
        {
        // AFFICHAGE DES INFOS
        // echo ''.$data200['pays'].' '.$data200['valeur'].'<br>';
    	if ($data200['pays'] == 'CHF' ) {$Cour_chf = $data200['valeur'];} <- définition de la variable $Cour_chf en fonction du controle et des données présente dans la table DEVISES
    	if ($data200['pays'] == 'USD' ) {$Cour_usd = $data200['valeur'];}
    	if ($data200['pays'] == 'GBP' ) {$Cour_gbp = $data200['valeur'];}
    	}
    // echo $Cour_chf; echo '<br>';<-- juste pour controler le bon retour lde la requete.
    // echo $Cour_usd; echo '<br>';
    // echo $Cour_gbp; echo '<br>';
     
    if ($data110['currency'] == 'CHF') {$CourDev = $Cour_chf;}
    if ($data110['currency'] == 'EUR') {$CourDev = $EUR;}
    if ($data110['currency'] == 'USD') {$CourDev = $Cour_usd;}
     
    if ($data110['currency'] == 'CHF') {$Fcurr = $value/$Cour_chf;}
    if ($data110['currency'] == 'EUR') {$Fcurr = $value/$EUR;}
    if ($data110['currency'] == 'USD') {$Fcurr = $value/$Cour_usd;}
    $Fcurr = number_format($Fcurr, 2, '.', '');
    ?>

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    En fait, j'aurais fait mais est ce que c'est ce que tu veux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Nous effectuons la boucle et pour la devise correspondante à celle du client,
    // nous calculons sa valeur sur le prix de la devise actuelle pour l'euro
    if ($data200['pays'] == 'CHF' AND $data110['pays'] == 'CHF') {$Fcurr = $data110['prix_devise']/$data200['P en Dev']; echo $Fcurr;}
    En fait vu le code que tu fournies avec les tests, je comprends ça mais bon
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Ca te sert à quoi ce bout de code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    if ($data110['currency'] == 'CHF') {$CourDev = $Cour_chf;}
    if ($data110['currency'] == 'EUR') {$CourDev = $EUR;}
    if ($data110['currency'] == 'USD') {$CourDev = $Cour_usd;}
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 42
    Points
    42
    Par défaut
    il me sert à afficher le cours des devises.
    j'adapte la première ligne que tu m'a suggeré, tu en fais une ou j'en ai besoin de 4...

  8. #8
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Oui adaptes et redonnes nous le code de tes tests, nous en discuterons ensuite (car j'ai pas tout suivi entre l'affichage et certaines de tes affectations)
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

Discussions similaires

  1. [VBA-Excel] affecter la valeur infinie à une variable
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/09/2006, 21h37
  2. Réponses: 4
    Dernier message: 06/09/2006, 14h50
  3. Réponses: 2
    Dernier message: 06/09/2006, 14h27
  4. [PHP-JS] affectation de la valeur d'une variable js à dans variable php
    Par Mat_DZ dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/08/2006, 17h21
  5. [VBA-E] affectation d'une valeur a une variable
    Par benjamin.leouzon dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/02/2006, 11h47

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