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

Bibliothèques et frameworks PHP Discussion :

[phpBB][2] Syntaxe condition


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 58
    Points
    58
    Par défaut [phpBB][2] Syntaxe condition
    Bonjour à tous.
    J'ai un peu de mal avec la syntaxe dans les templates du type phpbb et plus particulierement avec l'assignation d'infos aux variables template

    j'aimerai traduire une condition if...elseif...else... du type
    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
     
    while ($row=mysql_fetch_array($sql))
    {
      if ($row['maVar'] == 0)
      {
        $resultat = 'non';
      }
      else if ($row['maVar'] ==1)
      {
        $resultat = 'oui';
      }
      else 
      {
        $resultat = 'ND';
      }
    }
    pour un bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while ( $row = $db->sql_fetchrow($sql) )
    {
      $template->assign_block_vars('monBloc', array(
        'RESULTAT' => ...
      ));
    }
    Et là je seche...

    J'ai reussi pour un simple IF / ELSE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while ( $row = $db->sql_fetchrow($sql) )
    {
      $template->assign_block_vars('monBloc', array(
        'RESULTAT' => ($row['maVar'] == 0) ? 'oui' : 'non'
      ));
    }
    mais impossible de trouver la syntaxe pour un IF/ELSEIF/ELSE ou pour un CASE

    D'avance merci pour vos lumieres

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il n'y a qu'à utiliser une variable intermédiaire de la même manière (ça en sera plus facile à relire) :
    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
    while ($row=mysql_fetch_array($sql))
    {
      if ($row['maVar'] == 0)
      {
        $resultat = 'non';
      }
      else if ($row['maVar'] ==1)
      {
        $resultat = 'oui';
      }
      else 
      {
        $resultat = 'ND';
      }
      $template->assign_block_vars('monBloc', array(
        'RESULTAT' => $resultat
      ));
    }


    Et pour la syntaxe switch/case, ça vous donnerait :
    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
    while ($row=mysql_fetch_array($sql)) {
      switch ($row['maVar']) {
        case 0:
          $resultat = 'non';
          break;
        case 1:
          $resultat = 'oui';
          break;
        default:
          $resultat = 'ND';
          break;
      }
      $template->assign_block_vars('monBloc', array(
        'RESULTAT' => $resultat
      ));
    }

  3. #3
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Ton premier exemple est l'exact copie de mon code

    Je voulais juste savoir s'il existait une syntaxe propre a ce type de programmation php, comme pour le if/else

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Ce sont les seules solutions : la structure ternaire est strictement équivalente à if/else. Il y a bien la possibilité d'écrire :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (cond1) {
    } else {
       if (cond2) {
       } else {
       }
    }
    Qui pourrait s'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while ( $row = $db->sql_fetchrow($sql) )
    {
      $template->assign_block_vars('monBloc', array(
        'RESULTAT' => $row['maVar'] == 0 ? 'non' : ($row['maVar'] == 1 ? 'oui' : 'ND');
      ));
    }
    Mais ce n'est pas optimisé et c'est le meilleur moyen de faire des erreurs (syntaxe ou autres) sur des instructions plus complexes de ce genre.

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

Discussions similaires

  1. Syntaxe conditions if
    Par babou466 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/03/2009, 16h23
  2. [Syntaxe] conditions sur les JOIN
    Par Aka Guymelef dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/04/2008, 16h56
  3. Syntaxe condition if: AND, OR, elseif
    Par gregounnet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/07/2007, 15h04
  4. syntaxe condition pour lancer script
    Par mussara dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/04/2007, 14h01
  5. Syntaxe condition VraiFaux dans requête
    Par SuperBlaireau dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 16/06/2006, 15h39

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