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 :

Souci de grand débutant sur partie de code PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Points : 52
    Points
    52
    Par défaut Souci de grand débutant sur partie de code PHP
    Bonjour

    Je reprend une partie de code d'un développeur qui est parti et je suis ultra, ultra débutant
    Voici la partie de 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
    			if ($tab_regions_dest)
    			{
    				foreach ($tab_regions_dest as $region)
    				{
     
    					$guides_region = WP_Query_Destination_guides ('region', $region['ID']) ;
     
    				if ($guides_region)
    					{
    						$guides['region']['titre']['fr-FR'] = ($IDd == 8493 ? 'Etats' : 'Régions') ;  
    						$guides['region']['titre']['en-GB'] = ($IDd == 12129 ? 'States' : 'Regions') ; 
    						$guides['region']['donnees'][] = array('nom'			=> $region['nom'][$cl]	,
    															   'liste_guides'	=> $guides_region
    															  ) ;
    					}
     
    				}
    			}
    Pour résumer
    J'aimerais insérer d'autres tests dans cette boucle
    Par exemple ceci
    Je rajoute une condition ligne verte

    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
    		if ($tab_regions_dest)
    			{
    				foreach ($tab_regions_dest as $region)
    				{
    
    					$guides_region = WP_Query_Destination_guides ('region', $region['ID']) ;
    
    				if ($guides_region)
    					{
    						$guides['region']['titre']['fr-FR'] = ($IDd == 8493 ? 'Etats' : 'Régions') ;  
    						$guides['region']['titre']['en-GB'] = ($IDd == 12129 ? 'States' : 'Regions') ; 
    						$guides['region']['titre']['fr-FR'] = ($IDd == 55555 ? 'Emirats' : 'Régions') ;  
    						$guides['region']['titre']['en-GB'] = ($IDd == 66666 ? 'Emirates' : 'Regions') ;
    						$guides['region']['donnees'][] = array('nom'			=> $region['nom'][$cl]	,
    															   'liste_guides'	=> $guides_region
    															  ) ;
    					}
    					
    				}
    			}
    Mon souci c'est que le code ne prend en compte que la dernière condition du code ( la ligne en vert et ne tient pas compte de la ligne en rouge qu'il traite par défaut ligne bleue
    Je ne sais pas trop si j'ai été assez clair
    J'aimerais donc faire
    ( Si
    xxxx alors
    et
    Si
    yyyyy alors
    et
    SI
    zzzzz alors
    )
    Sinon


    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    En gardant la syntaxe des conditions ternaires :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $guides['region']['titre']['fr-FR'] = ($IDd == 8493 ? 'Etats' : ($IDd == 55555 ? 'Emirats' : 'Régions')) ;  
    $guides['region']['titre']['en-GB'] = ($IDd == 12129 ? 'States' : ($IDd == 66666 ? 'Emirates' : 'Regions')) ;

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Si tu es ultra débutant, n'hésite pas à réécrire un code que toi tu comprends...
    On ne peut pas sauter les étapes comme ça.
    Si j'ai bien compris (suis pas sûre), ça donnerait ça :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if($IDd == 8493 || $IDd == 12129){
      $guides['region']['titre']['fr-FR'] = 'Etats';
      $guides['region']['titre']['en-GB'] = 'States';
    }
    elseif ($IDd == 55555 || $IDd == 66666){
      $guides['region']['titre']['fr-FR'] = 'Emirats';
      $guides['region']['titre']['en-GB'] = 'Emirates';
    }
    else{
      $guides['region']['titre']['fr-FR'] = 'Régions';
      $guides['region']['titre']['en-GB'] = 'Regions';
    }
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Invité
    Invité(e)
    Par défaut
    C'est plutôt :

    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
    if ($IDd == 8493)
    {
       $guides['region']['titre']['fr-FR'] = 'Etats';
    } elseif ($IDd == 55555) {
       $guides['region']['titre']['fr-FR'] = 'Emirats';  
    } else {
       $guides['region']['titre']['fr-FR'] =  'Régions';  
    }
    if ($IDd == 12129)
    {
       $guides['region']['titre']['en-GB'] = 'States';
    } elseif ($IDd == 66666) {
       $guides['region']['titre']['en-GB'] = 'Emirates';  
    } else {
       $guides['region']['titre']['en-GB'] =  'Regions';  
    }

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    En gardant la syntaxe des conditions ternaires :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $guides['region']['titre']['fr-FR'] = ($IDd == 8493 ? 'Etats' : ($IDd == 55555 ? 'Emirats' : 'Régions')) ;  
    $guides['region']['titre']['en-GB'] = ($IDd == 12129 ? 'States' : ($IDd == 66666 ? 'Emirates' : 'Regions')) ;
    Merci beaucoup, cette première solution fonctionne très bien

  6. #6
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    C'est plutôt :

    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
    if ($IDd == 8493)
    {
       $guides['region']['titre']['fr-FR'] = 'Etats';
    } elseif ($IDd == 55555) {
       $guides['region']['titre']['fr-FR'] = 'Emirats';  
    } else {
       $guides['region']['titre']['fr-FR'] =  'Régions';  
    }
    if ($IDd == 12129)
    {
       $guides['region']['titre']['en-GB'] = 'States';
    } elseif ($IDd == 66666) {
       $guides['region']['titre']['en-GB'] = 'Emirates';  
    } else {
       $guides['region']['titre']['en-GB'] =  'Regions';  
    }

    Merci bien j'ai implémenté votre première solution

  7. #7
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Si tu es ultra débutant, n'hésite pas à réécrire un code que toi tu comprends...
    On ne peut pas sauter les étapes comme ça.
    Si j'ai bien compris (suis pas sûre), ça donnerait ça :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if($IDd == 8493 || $IDd == 12129){
      $guides['region']['titre']['fr-FR'] = 'Etats';
      $guides['region']['titre']['en-GB'] = 'States';
    }
    elseif ($IDd == 55555 || $IDd == 66666){
      $guides['region']['titre']['fr-FR'] = 'Emirats';
      $guides['region']['titre']['en-GB'] = 'Emirates';
    }
    else{
      $guides['region']['titre']['fr-FR'] = 'Régions';
      $guides['region']['titre']['en-GB'] = 'Regions';
    }


    Merci bien j'ai testé la première solution de jreaux62 qui fonctionne aussi très bien

  8. #8
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Merci Jreaux pour la correction.
    @Gilles : que la condition ternaire fonctionne, j'en étais certaine. La question est : la comprends-tu ?
    Moi, je trouve les conditions ternaires imbriquées très peu lisibles. Je ne les utilise que sur un niveau.
    L'autre question : c'est que si tu fais évoluer le code de quelqu'un qui va revenir, reste dans sa logique à lui. Mais s'il ne revient pas et que tu dois t'approprier "définitivement" ses scripts, n'hésite pas à les rendre plus simples pour toi, ils n'en seront pas moins performants.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  9. #9
    Invité
    Invité(e)
    Par défaut
    Juste pour info, on peut utiliser des arrays:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $titre_fr_arr = [
    	0 => 'Régions',
    	8493 => 'Etats',
    	55555 => 'Emirats',
    	];
    $titre_en_arr = [
    	0 => 'Regions',
    	12129 => 'States',
    	66666 => 'Emirates',
    	];
    $guides['region']['titre']['fr-FR'] = ( !empty($titre_fr_arr[$IDd]) )? $titre_fr_arr[$IDd] : $titre_fr_arr[0] ;  
    $guides['region']['titre']['en-GB'] = ( !empty($titre_en_arr[$IDd]) )? $titre_en_arr[$IDd] : $titre_en_arr[0] ;
    Ou encore des switch :

    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
    switch($IDd)
    {
    	case 8493:
    		$guides['region']['titre']['fr-FR'] = 'Etats';
    		break;
    	case 55555:
    		$guides['region']['titre']['fr-FR'] = 'Emirats';
    		break;
    	default:
    		$guides['region']['titre']['fr-FR'] = 'Régions';
    }
    switch($IDd)
    {
    	case 12129:
    		$guides['region']['titre']['en-GB'] = 'States';
    		break;
    	case 66666:
    		$guides['region']['titre']['en-GB'] = 'Emirates';
    		break;
    	default:
    		$guides['region']['titre']['en-GB'] = 'Regions';
    }
    ATTENTION : les 2 switch (comme les 2 if précédents), ne peuvent pas être fusionnés en un seul ici (car pour chacun, on ne passe que dans une seule condition, or on a 2 variables à remplir).

    On peut néanmoins procéder autrement, en initialisant D'ABORD les variables avec leur valeur par défaut :
    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
    $guides['region']['titre']['fr-FR'] = 'Régions';
    $guides['region']['titre']['en-GB'] = 'Regions';
    switch($IDd)
    {
    	case 8493:
    		$guides['region']['titre']['fr-FR'] = 'Etats';
    		break;
    	case 55555:
    		$guides['region']['titre']['fr-FR'] = 'Emirats';
    		break;
    	case 12129:
    		$guides['region']['titre']['en-GB'] = 'States';
    		break;
    	case 66666:
    		$guides['region']['titre']['en-GB'] = 'Emirates';
    		break;
    }
    Mais, à mon avis, c'est moins lisible, notamment pour la maintenance.

  10. #10
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Merci Jreaux pour la correction.
    @Gilles : que la condition ternaire fonctionne, j'en étais certaine. La question est : la comprends-tu ?
    Moi, je trouve les conditions ternaires imbriquées très peu lisibles. Je ne les utilise que sur un niveau.
    L'autre question : c'est que si tu fais évoluer le code de quelqu'un qui va revenir, reste dans sa logique à lui. Mais s'il ne revient pas et que tu dois t'approprier "définitivement" ses scripts, n'hésite pas à les rendre plus simples pour toi, ils n'en seront pas moins performants.
    Merci pour ta version que j'ai testé et mise en place car bien plus lisible.
    Je n'ai pas testé la version de @Jreaux qui doit fonctionner tout autant.

  11. #11
    Invité
    Invité(e)
    Par défaut
    OK.
    Donc, tu te contentes de copier-coller, sans chercher à comprendre...

  12. #12
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    J'ai aussi mis en place la version des switch avec initialisation des zones, merci !

  13. #13
    Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2017
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mars 2017
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    OK.
    Donc, tu te contentes de copier-coller, sans chercher à comprendre...
    Pourquoi dis-tu cela ?????

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

Discussions similaires

  1. [XL-2007] [DÉBUTANT] Une partie du code utilise toutes les lignes de la feuille
    Par Nomorerulz dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/07/2016, 15h42
  2. Partie du code fonctionnel sur Firefox et non sur IE
    Par afrodje dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 18/10/2008, 16h04
  3. Question de débutant sur le code
    Par Ella68 dans le forum SharePoint
    Réponses: 8
    Dernier message: 14/08/2008, 14h34
  4. Réponses: 5
    Dernier message: 28/08/2007, 14h00
  5. faire un commit que sur un petit partie du code
    Par schnourf dans le forum Oracle
    Réponses: 4
    Dernier message: 11/01/2006, 11h19

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