8768 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,

Je souhaiter faire un petit code simple

si $UM = 8 ça affiche echo "Bob" avec un message Bob 8

Si $UM = 9 ça affiche echo "Tintin" avec un message Tintin 10

Suivant la valeur de ma variable $UM, je souhaite avoir un message différent en fonction de la valeur. La valeur est un chiffre et la valeur du chiffre doit afficher un message.

Dans le programme c'est soit 8 ou 9.

En gros, je voudrai que lors de l'affichage de la variable $UM j'ai un message qui apparaisse à coté de mon chiffre Bob ou Tintin.

Si on pouvait me trouver un exemple ça serait sympa ou un bout de cours ...

Merci d'avance pour vos retours.
Modifié par Tintin75 (27 Apr 2016 - 17:04)
Bonjour,
Tintin75 a écrit :
... ou un bout de cours ...

Euh, un cours non, j'ai seulement peur d'avoir compris ton problème...

Un if ?
if ($UM === 8) echo "Bob 8";
else           echo "Tintin 10";
Merci SolidSnake, la réponse était tellement simple que j'aurai dû trouver !!! Smiley decu

Honte à moi Smiley ohwell
Modifié par Tintin75 (27 Apr 2016 - 19:32)
Juste une question sur le code :

($UM === 8) pourquoi 3 = ? en général c'est 2 si je me trompe pas ?
Peut-on envisager un switch ?

<?php
// Le if bourrin...
if ($i == 0) {
    echo "i égal 0";
} elseif ($i == 1) {
    echo "i égal 1";
} elseif ($i == 2) {
    echo "i égal 2";
}
// Le switch
switch ($i) {
    case 0:
        echo "i égal 0";
        break;
    case 1:
        echo "i égal 1";
        break;
    case 2:
        echo "i égal 2";
        break;
   default:
       echo "i n'est ni égal à 2, ni à 1, ni à 0.";
}
?>

A priori plus souple si des valeurs supplémentaires doivent être testées... M'enfin, si j'ai bien compris le sujet Smiley cligne
Tintin75 a écrit :
($UM === 8) pourquoi 3 = ? en général c'est 2 si je me trompe pas ?

C'est juste qu'avec trois "=" tu testes (en plus) que ta variable est un bien un nombre et pas une chaîne de caractère ou autre.
sepecat a écrit :
Peut-on envisager un switch ?

Totalement, s'il y avait eu plus de deux valeurs, mais ce n'était pas le cas ici.
L'exemple était sur deux valeurs, mais le projet porte sur 4.

Je vais essayer de me pencher sur le dossier dès que j'ai une minute pour bosser au calme.

J'ai une vague idée, mais il faut que je creuse, comment je vais m'y prendre.

Merci encore pour votre aide. Smiley smile
Salut,

Une autre solution pourrait être celle-ci, si tes résultats sont contenus dans un tableau (tableau en dur ou retour d'une requête SQL...), ça permet de ne pas limiter le nombre de possibilité avec des if ou des switchs :
<?php
//récupération de la variable depuis l'URL par exemple
$UM = (isset($_GET['UM'])) ? htmlspecialchars($_GET['UM']) : null;

$values = array(
  8 => 'Bob',
  9 => 'Tintin',
  10 => 'Milou',
  11 => 'Capitaine Haddock',
);

if(isset($values[$UM])){
  echo $values[$UM] . ' ' . $UM;
}else{
  echo 'Aucune valeur ne correspond à la variable $UM=' . $UM;
}

Pour mois, dans ce cas ça serait une bonne solution et si tu veux afficher plus d'infos, tu peux tout à fait faire passer un tableau à chaque entrée de ton tableau $values... comme ça par exemple :
$values = array(
  10 => array(
    'nom' => 'Milou',
    'age' => 3,
    'taille' => 0.30,
  ),
  11 => array(
    'nom' => 'Capitaine Haddock',
    'age' => 50,
    'taille' => 1.75,
  ),
);

if(isset($values[$UM])){
  $value = $values[$UM];
  echo $value['nom'] . ' a ' . $value['age'] . ' ans et mesure ' . $value['taille'] . 'm';
}else{
  echo 'Aucune valeur ne correspond à la variable $UM=' . $UM;
}
Salut Matthieu,

C'est une solution que j'avais pensé aussi ce matin.

Mais vue que je n'ai que 4 ou 5 champs maxi, je vais faire au plus simple.

Ta solution est bonne si on a plus de choix.

Merci pour le code Smiley murf
Presque fini !!!

<?php
switch ($i) {
    case 0:
        echo "i égal 0";
        break;
    case 1:
        echo "i égal 1";
        break;
    case 2:
        echo "i égal 2";
        break;
   default:
       echo "i n'est ni égal à 2, ni à 1, ni à 0.";
}
?>


La valeur $i je la récupère d'une variable, je fais comment pour que ça fonctionne ?
Modifié par Tintin75 (28 Apr 2016 - 13:53)
Bonjour,

Encore une fois, pas sûr d'avoir compris !?
switch ($i) {
    case 0:
        $UMPS = "i égal 0";
        break;
    case 1:
        $UMPS = "i égal 1";
        break;
    case 2:
        $UMPS = "i égal 2";
        break;
   default:
       $UMPS = "i n'est ni égal à 2, ni à 1, ni à 0.";
}
echo $UMPS;

Est-ce cela ?
Pages :