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 :

Operateur logique dans un If


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de HWICE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 249
    Par défaut Operateur logique dans un If
    Bonjour.

    Est-il possible de faire cela
    par exemple
    $rich['datereal']= 2008-01-20

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? if ($rich['datereal'] <= date('Y-m-d')){ echo "<img src=\"/images/improuge.jpg\"/>"; } else  { echo"<img src=\"/images/impvert.jpg\"/>";}?>
    Php me mets l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error:  syntax error, unexpected '{' in /home/samba/site/leaualabouche/public/admin/special.php on line 265
    je ne pense pas que l'ont puissent faire une tel operation dans un if

    merci de votre aide

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonsoir,
    en tout cas ceci fonctionne parfaitement :

    Code exemple.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     
      $date = '2008-01-20';
     
      if ($date <= date('Y-m-d')) echo '<img src="/images/improuge.jpg"/>';
      else echo '<img src="/images/impvert.jpg"/>';
     
    ?>

    Cordialement,
    DaRiaN.

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Salut,
    A priori, cela devrait être pourtant possible. Peut être est-ce un espace manquant entre ton deuxième echo et les premiers guillemets ?

    Personnellement, je n'aime pas mélanger les traitements php et html. Aussi je fais tous mes tests, boucles, etc... avant de sortir le code html. C'est plus simple à débugger.

    Exemple :
    Avant de générer le HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($rich['datereal'] <= date('Y-m-d'))
        $img = '<img src="/images/improuge.jpg"/>';
    else
        $img = '<img src="/images/impvert.jpg"/>';
    et ensuite dans l'impression de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body>
    <?php echo $img;?>
    </body>
    plus lisible et plus modulaire à mon goût.

    Deuxième conseil : préférer les balises <?php ... ?> au simple <? ... ?> qui pourrait être différemment supporté à l'avenir. Tout comme il faut privilégier <?php echo $var;?> au plus court mais bientôt abandonné <?= $var;?>

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Ya pas de raison que ca fonctionne pas, d'après le message c'est un problème d'accolade et la ligne à l'air bonne.

    Tu es sur que l'erreur est sur cette ligne ? Si oui faudrais voir un bout de code plus grand, ca doit venir d'une accolade manquante ou en trop en amont ou en aval de cette ligne.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Hier, je me suis demandé s'il n'avait pas écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //$rich['datereal']= '2008-01-20'; // bonne écriture
    $rich['datereal']= 2008-01-20
     
    if ($rich['datereal'] <= date('Y-m-d'))
        $img = '<img src="/images/improuge.jpg"/>';
    else
        $img = '<img src="/images/impvert.jpg"/>';

  6. #6
    Membre éclairé Avatar de HWICE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 249
    Par défaut
    oh merci... bizzarment tout fonctionne... je ne comprend pas.

    Question comme ca.... pouquoi <?php ?> aulieu de <? ?>, les 2 fonctionne très bien

    merci de votre soutien

  7. #7
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Il n'est pas impossible qu'à l'avenir la séquenece <? ?> puisse être applicable à plusieurs langages, genre mixer php et psp (python server page) par exemple.
    Idem pour <?= ?> qui fonctionne, mais que php prévoit de laisser tomber.

    Mieux vaut être précis, c'est pas trois lettres en plus qui vont polluer le code...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/07/2006, 14h43
  2. Problème de lecteur logique dans Windows XP
    Par olosta dans le forum Windows XP
    Réponses: 1
    Dernier message: 04/05/2006, 17h28
  3. Utilisation d'operateur booleen dans une requete
    Par olivier] dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/01/2006, 16h16
  4. Opérateur logique
    Par webspeak dans le forum Linux
    Réponses: 3
    Dernier message: 07/11/2005, 18h19
  5. Probleme de logique dans une requete
    Par linou dans le forum Langage SQL
    Réponses: 11
    Dernier message: 18/03/2005, 19h52

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