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 :

Operations en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Par défaut Operations en PHP
    Bonjour à tous,
    Je souhaiterais afficher un texte en php selon le résultat à un calcul.
    Normalement, cela devrait être un calcul de base, mais cela ne fonctionne pas.
    Merci d'avance de votre aide.

    Voici mon code :
    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
    43
    44
    45
    46
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    </head>
    <body>
    <?php
    function calculSomme($nombre){
     
    		$longueur = strlen($nombre);
    		$somme = 0;
     
    		for($i=0; $i<$longueur; $i++)
    			$somme += substr($nombre, $i, 1);
     
    		return $somme;
     
    	}
    function translate($jour, $mois, $annee)
    {
    	$somme = calculSomme($jour) + calculSomme($mois) + calculSomme($annee);
     
    		while($somme != 11 && $somme != 22 && $somme > 9)
    			$somme = calculSomme($somme);
     
    		return $somme;
    	}
    ?>
    <?php
    if(isset($_POST['jour']) && isset($_POST['mois']) && isset($_POST['annee']))
       echo translate($_POST['jour'], $_POST['mois'], $_POST['annee']);
       if ("translate" == 1)   (VOICI LA PARTIE QUI POSE PROBLEME_AFFICHAGE DES PHRASES)
    {
    echo "Le nombre est 1";
    }
    elseif ("translate" == 2) 
    {
    echo "Le nombre est 2";
    }
    else "Le nombre est supérieur à 2";
    {
    }
    ?>
    </body>
    </html>

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est quoi la logique de ton calcule ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Par défaut
    La logique est de calculer la somme des chiffres d'une date.
    Le calcul est ok et fonctionne très bien.

    Mon problème est de faire apparaitre le texte correspondant au résultat :
    Si 3 est le résutat alors texte 'le nombre est 3'

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par novice100 Voir le message
    La logique est de calculer la somme des chiffres d'une date.
    Le calcul est ok et fonctionne très bien.

    Mon problème est de faire apparaitre le texte correspondant au résultat :
    Si 3 est le résutat alors texte 'le nombre est 3'
    ton probleme viens de echo translate

    c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $translate = translate($_POST['jour'], $_POST['mois'], $_POST['annee']);
    echo "Le nombre est $translate";
    sinon pour ton calcule tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ad = str_split($_POST['jour']);
    $am = str_split($_POST['mois']);
    $ay = str_split($_POST['annee']);
     
    $date = array_merge($ad, $am, $ay);
    $sum = array_sum($date);
    echo $sum;

  5. #5
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Par défaut
    Ce n'est pas cela.
    Je ne cherche pas à faire apparaitre le nombre, cela focntionne déjà.
    Je cherche à faire apparaitre un texte qui sera différent selon le nombre.

    Si le nombre est 1, le texte qui devrait apparaitre est "le nombre est 1"
    Si le nombre est 2, le texte qui devrait apparaitre est "le nombre est 2"
    Si le nombre est 3, le texte qui devrait apparaitre est "le nombre est 3"
    + un texte qui sera propre à chaque nombre comme ceci..

    Si le nombre est 1, le texte qui devrait apparaitre est "le nombre est 1. Il était une fois..."
    Si le nombre est 2, le texte qui devrait apparaitre est "le nombre est 2. Je m'appelle..."
    Si le nombre est 3, le texte qui devrait apparaitre est "le nombre est 3. Il fait beau..." etc...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 14
    Par défaut mauvais test
    "translate" est une chaine de caracteres, qui sera donc toujours differente de 1, 2 et 3.
    Il faut donc faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $translate = translate($_POST['jour'], $_POST['mois'], $_POST['annee']);
    if ($translate == 1) {  echo "1"; }
    if ($translate == 2) {  echo "2"; }
    if ($translate == 3) {  echo "3"; }

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par novice100 Voir le message
    Ce n'est pas cela.
    Je ne cherche pas à faire apparaitre le nombre, cela focntionne déjà.
    Je cherche à faire apparaitre un texte qui sera différent selon le nombre.

    Si le nombre est 1, le texte qui devrait apparaitre est "le nombre est 1"
    Si le nombre est 2, le texte qui devrait apparaitre est "le nombre est 2"
    Si le nombre est 3, le texte qui devrait apparaitre est "le nombre est 3"
    + un texte qui sera propre à chaque nombre comme ceci..

    Si le nombre est 1, le texte qui devrait apparaitre est "le nombre est 1. Il était une fois..."
    Si le nombre est 2, le texte qui devrait apparaitre est "le nombre est 2. Je m'appelle..."
    Si le nombre est 3, le texte qui devrait apparaitre est "le nombre est 3. Il fait beau..." etc...
    faut faire un switch sur ton translate

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    ton probleme viens de echo translate

    c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $translate = translate($_POST['jour'], $_POST['mois'], $_POST['annee']);
    echo "Le nombre est $translate";

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut
    Je pense que ça doit afficher tout le temps : "Le nombre est supérieur à 2"?
    C'est normal, comment la chaîne de caractère "translate" peut être égal au chiffre 1 ou 2?

    Il te faut récupérer le résultat de ta fonction translate et le stocker dans une variable, aprés tu pourra comparer cette variable avec les chiffres 1 et 2.

  10. #10
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Octobre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2010
    Messages : 68
    Par défaut
    je ne vois pas commente je peux faire...
    J'avais bien essayé avec $somme au début mais cela fonctionnait encore mois bien.
    Il me disait que la variable somme n'était pas définie...
    Du coup je suis partie sur 'translate'...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 70
    Par défaut
    Salut
    Comme ça c'est bon

    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
    43
    44
    45
    46
    47
    48
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    </head>
    <body>
    <?php
    function calculSomme($nombre){
     
    		$longueur = strlen($nombre);
    		$somme = 0;
     
    		for($i=0; $i<$longueur; $i++)
    			$somme += substr($nombre, $i, 1);
     
    		return $somme;
     
    	}
    function translate($jour, $mois, $annee)
    {
    	$somme = calculSomme($jour) + calculSomme($mois) + calculSomme($annee);
     
    		while($somme != 11 && $somme != 22 && $somme > 9)
    			$somme = calculSomme($somme);
     
    		return $somme;
    	}
    ?>
    <?php
    $jour=17;
    $mois=08;
    $annee=1982;
       echo translate($jour, $mois, $annee);
       if (translate($jour, $mois, $annee) == 1) 
    {
    echo "Le nombre est 1";
    }
    elseif ("translate" == 2) 
    {
    echo "Le nombre est 2";
    }
    else "Le nombre est supérieur à 2";
    {
    }
    ?>
    </body>
    </html>

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

Discussions similaires

  1. [EDI] Quel est l'éditeur que vous recommandez pour PHP ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 400
    Dernier message: 10/04/2018, 21h08
  2. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 08h45
  3. Réponses: 2
    Dernier message: 29/06/2011, 09h28
  4. L'avenir est-il au PHP ?
    Par Manolo dans le forum Langage
    Réponses: 468
    Dernier message: 11/02/2008, 19h54

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