Bonjour,

Novice, je me permets de venir vers la communauté car je souhaiterais savoir comment faire une condition if elseif avec des valeurs id.

En gros je voudrais que:

Si id = 1;
    alors çà affiche pierre;
ou si id=2;
    alors çà affiche paul;
ou si id=3;
    alors çà affiche jean;
ou...

et en concret

<?php
    $sql="SELECT * FROM compofifa ORDER BY date DESC LIMIT 0, 1";
    $req=mysql_query($sql) or die ('erreur SQL !</br>'.$sql.'</br>'.mysql_error());
        while ($data=mysql_fetch_assoc($req))
        {
        echo"<div class='test6'>Choix Formation</div><div class='test3'><a href=\"edit352.php?id=1\"></a></div><div class='test5'><a href=\"edit41212.php?id=2\"></a></div></br>";
        echo"<div class='test2'>".date("d/m/Y",strtotime($data"date"]))."       "; 
        echo"-{$data"titre"]}</div>";
        }
            if (($data"id"])==1)
            {
            echo "352";
            }
            elseif (($data"id"])==2)
            {
            echo "41212";
            }   
?>

En vous remerciant pour vos réponses.

2 réponses


Vallyan
Réponse acceptée

Alors globalement ton indentation et tes parenthèses piquent un peu les yeux, mais la structure de ton if .. elseif est bonne. Par contre elle devrait être a l'intérieur de ton while.
Quelque chose comme ca:

<?php
    $sql = "SELECT * FROM compofifa ORDER BY date DESC LIMIT 0, 1";
    $req = mysql_query($sql) or die ('erreur SQL !</br>'.$sql.'</br>'.mysql_error());
    while ( $data = mysql_fetch_assoc($req) )
    {
        echo "<div class='test6'>Choix Formation</div><div class='test3'><a href=\"edit352.php?id=1\"></a></div><div class='test5'><a href=\"edit41212.php?id=2\"></a></div></br>"
        echo "<div class='test2'>".date("d/m/Y",strtotime($data"date"]))."       ";
        echo "-{$data"titre"]}</div>";
        if ( $data"id"] == 1)
        {
            echo "352";
        }
        elseif ( $data"id"] == 2 )
        {
            echo "41212";
        }
    }
?>

Dans les faits, chaque entrée de ta bdd retournée par ta requete est successivement affectée a la variable $data. Donc chaque fois que tu veux accéder a la valeur d'un champ (id en l'occurence), sois sur que tu es bien dans la boucle.

Pour info, a la place d'un if ... elseif ..., un switch pourrait être plus approprié. En terme de performances c'est pareil (43 microsecondes de différences après 1000 opérations), mais en termes de "sémentique", c'est plutot un switch qu'il faudrait mettre si tu testes la valeurs que d'une seule variable avec plus de 2 ou 3 possibilités).

BAM Jan0
Auteur

u><strong>@Vallyan:</strong</u>

Merci beaucoup