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 :

Elseif dans un foreach ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut Elseif dans un foreach ?
    Un problème surement très simple, la fatigue ne doit pas m'aider

    Quoi qu'il en soit j'ai un petit problème avec un IF, par soucis de visibilité je souhaite mettre ma condition dans une variable et ensuite faire en sorte qu'elle soit afficher comme tel dans la condition.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ////////////////////////////////
    /* Gestion de l'occupation */
    ////////////////////////////////
    // Indisponible du Lundi au Vendredi à 12h00 ($j == 0 => Lundi, $j == 1 => Mardi...)
    $occ = "\$h == 12 && \$j != 5 && \$j != 6";
    // Indisponible le Vendredi à 13h00
    $occ .= " \$h == 13 && \$j == 4";
     
    if ( $occ )
    {
    	echo 'Occupé';
    }

    Donc j'aimerai que ma condition soit faite sur $h == 12 && $j != 5 && $j != 6 $h == 13 && $j == 4 et non sur le faite que ma chaine ne soit pas vide.

    Merci

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Salut,
    Si la lisibilité est de mettre tes conditions sur 2 lignes, tu peux le faire aussi bien dans le if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ////////////////////////////////
    /* Gestion de l'occupation */
    ////////////////////////////////
     
    // Indisponible du Lundi au Vendredi à 12h00 ($j == 0 => Lundi, $j == 1 => Mardi...)
    if ( $h == 12 && $j != 5 && $j != 6 && 
    // Indisponible le Vendredi à 13h00
         $h == 13 && $j == 4)
    {
    	echo 'Occupé';
    }
    De plus, il te mmanque un && lors de la concaténation.
    Z.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ce que tu peux faire c'est transformer ta variable en booléen. En d'autres termes tu évalues ta condition au moement de l'affectation...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $occ = ($h == 12) && ($j != 5) && ($j != 6);
    // Indisponible le Vendredi à 13h00
    $occ = $occ && ($h == 13 && $j == 4);
    if ($occ)
    {
    	echo 'Occupé';
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    J'ai utilisé la méthode de Zwiter qui marche impec

    Mais malheureusement je but sur un autre problème :/ Concrètement, je souhaite mettre en place un tableau HTML, un planning, avec des heures réservées. Il y a 3 cas, ma salle est libre, la salle est occupé ou la salle a été reservée, et je n'arrive pas à montrer mes valeurs dans ma BDD MySQL.

    Voilà mon code, je le laisse brut c'est assez clair :

    Code php : 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?php
    //////////////////////////////
    /* Gestion des reservations */
    //////////////////////////////
    $result = mysql_query("Select * from reservations");
    $cpt = 0;
    while ( $reservation = mysql_fetch_assoc($result) )
    {
    	$res[$cpt]['occ'] = ($h == $reservation['heure']) && ($j == $reservation['jour']);
    	$res[$cpt]['libelle'] = strtoupper($reservation['nom']). ' ' . $reservation['prenom'];
    	$cpt++;
    }
     
    for ( $h = 9 ; $h < 22 ; $h++ )
    {
    	echo '<tr>';			
    	echo '<td class="ui-state-disabled" >' . $h . 'h00 - ' . ($h + 1) . 'h00</td>';
     
    		for ( $j = 0 ; $j < 8 ; $j++ )
    		{
    			////////////////////////////////
    			/* Gestion de la salle occupé */
    			////////////////////////////////
    			// Menage 
    			$menage = ($h <= 11) && ($j == 0);
     
    			// Midi => Lundi, Mardi, Jeudi, Vendredi
    			$midi = ($h == 13) && ($j != 2) && ($j != 5) && ($j != 6) && ($j != 7);
     
    			// Ecole
    			$ecole = ($h < 17) && ($j == 0) ||
    					 ($h < 17) && ($j == 1) ||
    					 ($h < 17) && ($j == 3) ||
    					 ($h < 17) && ($j == 4) ;
     
    			// Basket
    			$basket = ($h > 16) && ($j == 2) ||
    					  ($h > 13) && ($h < 17) && ($j == 5);
     
    			// Cours
    			$cours = ($h < 14) && ($j == 2) ||
    					 ($h > 17) && ($h < 22) && ($j == 3) ||
    					 ($h < 13) && ($j == 5);
     
     
     
    			// Menage
    			if ( $menage )
    			{
    				echo '<td class="ui-state-error" >Ménage</td>';
    			}
    			// Midi
    			elseif ( $midi )
    			{
    				echo '<td class="ui-state-error" > </td>';
    			}
    			// Ecole
    			elseif ( $ecole )
    			{
    				echo '<td class="ui-state-error" >Ecole</td>';
    			}
    			// Basket
    			elseif ( $basket )
    			{
    				echo '<td class="ui-state-error" >Basket</td>';
    			}
    			// Cours
    			elseif ( $cours )
    			{
    				echo '<td class="ui-state-error" >Cours de Tennis</td>';
    			}
     
    			// Salle libre
    			else {
    				echo '<td j="' . $j . '" h="' . $h . '" class="droppable" >Libre</td>';
    			}
     
    		}				
    	echo '</tr>';
    }
    ?>

    Mon code est en 4 parties :
    1. Récupération des données
    2. Gestion des salles occupé
    3. Affichage des horaires occupés
    4. Affiche du reste, les horaires libres


    Et je n'arrive pas à insérer les données récupérées comme il le faut, car, je pense, qu'il faut les mettre à la suite des salles occupé et avant les salles libre, dans un elseif donc, mais vu qu'il y a plusieurs salles de réservées il m'est impossible de mettre un elseif dans un foreach.

    Je bloque :/

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 114
    Par défaut
    J'ai modifié mon code pour le rendre plus compréhensible.

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

Discussions similaires

  1. [Boucle] Ordre des Controls dans un ForEach
    Par Djekill dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/12/2007, 10h38
  2. [Tableaux] Message d'erreur dans un foreach
    Par maysa dans le forum Langage
    Réponses: 2
    Dernier message: 14/08/2007, 11h45
  3. [JSTL] Checkboxes dans un foreach
    Par BadIsGood dans le forum Taglibs
    Réponses: 2
    Dernier message: 29/06/2007, 18h58
  4. [C#]utilisation de variables contenu dans un foreach
    Par beufreecasse dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/11/2006, 20h42
  5. Problème de variable dans un foreach
    Par VolaiL dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/05/2006, 16h57

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