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

Discussion :

Souci de grand débutant sur partie de code PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    mars 2017
    Messages
    65
    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 : 65
    Points : 23
    Points
    23
    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
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 366
    Points : 31 366
    Points
    31 366
    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')) ;
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  3. #3
    Membre émérite
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    juin 2008
    Messages
    1 798
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : juin 2008
    Messages : 1 798
    Points : 2 985
    Points
    2 985
    Billets dans le blog
    7
    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';
    }
    Mes billets de blog : un billet = une problématique précise
    It's easier to be friends with lots of people online than one person in person!

  4. #4
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 366
    Points : 31 366
    Points
    31 366
    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';  
    }
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    mars 2017
    Messages
    65
    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 : 65
    Points : 23
    Points
    23
    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 à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    mars 2017
    Messages
    65
    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 : 65
    Points : 23
    Points
    23
    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 à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    mars 2017
    Messages
    65
    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 : 65
    Points : 23
    Points
    23
    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 émérite
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    juin 2008
    Messages
    1 798
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : juin 2008
    Messages : 1 798
    Points : 2 985
    Points
    2 985
    Billets dans le blog
    7
    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.
    Mes billets de blog : un billet = une problématique précise
    It's easier to be friends with lots of people online than one person in person!

  9. #9
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 366
    Points : 31 366
    Points
    31 366
    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.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  10. #10
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    mars 2017
    Messages
    65
    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 : 65
    Points : 23
    Points
    23
    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
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 366
    Points : 31 366
    Points
    31 366
    Par défaut
    OK.
    Donc, tu te contentes de copier-coller, sans chercher à comprendre...
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  12. #12
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    mars 2017
    Messages
    65
    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 : 65
    Points : 23
    Points
    23
    Par défaut
    J'ai aussi mis en place la version des switch avec initialisation des zones, merci !

  13. #13
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    mars 2017
    Messages
    65
    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 : 65
    Points : 23
    Points
    23
    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