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

PHP & Base de données Discussion :

comparaison de variable et condition dans un while


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Par défaut comparaison de variable et condition dans un while
    Bonjour ,

    en faite je créer un gestionnaire de planning et je rencontre un petit soucis j'ai ce tableau :


    Nom : exp.jpg
Affichages : 225
Taille : 110,7 Ko


    là c'est agent n1 qui est connecter

    et j'aimerais que le bouton vert qui permet de permuter n'apparait que dans les champs des agents qui ont une heure de pause dej différente

    dans cet exemple le bouton vert ne devrait apparaitre que chez l'agent n3

    mais je trouve pas un moyen de faire la comparaison

    je veux un code du genre :


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    $sql=  $bdd -> query("SELECT *  FROM  planning,agents  WHERE  date_plann  BETWEEN '". $dbx ."' AND '". $dfx ."'
     
    AND agents.matricule = planning.matricule AND services = '". $srv ."' AND canal = '". $canl ."'
     
    ") ;  
     
     
    while( $planning = $sql->fetch()){
     
     
    /*  j'arrive pas à créer la valeur $utilisateur_debut_pausedej et
     
    $utilisateur_fin_pausedej
     
    */
     
    if( $utilisateur_debut_pausedej == $planning['debut_pausedej'] and  $utilisateur_fin_pausedej ==  $planning['fin_pausedej'] ){
     
     
    //on masque l'image
     
     
    }
     
    else{
     
     
    //on affiche limage
     
    }
     
    }

  2. #2
    Membre chevronné Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 165
    Par défaut
    Bonjour,

    Pour faire ta comparaison de date il faut déjà voir si les valeurs sont au même format pour être comparées. Les valeurs sont au format timestamp ? ou au format string 'H-i-s' ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $utilisateur_debut_pausedej == $planning['debut_pausedej'] and  $utilisateur_fin_pausedej ==  $planning['fin_pausedej']
    Tu devrais même inverser ta condition. Au lien de vouloir la masquer, tu ne l'affiches pas de base et tu l'affiches uniquement si les dates sont différentes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( $utilisateur_debut_pausedej != $planning['debut_pausedej'] && $utilisateur_fin_pausedej !=  $planning['fin_pausedej'] ) {
    //on affichel'image
    }
    Bon courage

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Par défaut
    Citation Envoyé par Freudd Voir le message
    Bonjour,

    Pour faire ta comparaison de date il faut déjà voir si les valeurs sont au même format pour être comparées. Les valeurs sont au format timestamp ? ou au format string 'H-i-s' ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $utilisateur_debut_pausedej == $planning['debut_pausedej'] and  $utilisateur_fin_pausedej ==  $planning['fin_pausedej']

    merci pour ta réponse , alors pour te répondre ils sont au format time

    Nom : a.jpg
Affichages : 158
Taille : 7,2 Ko

    je veux prendre les informations deb_pdj et fin_pdj

    de la personne connecter et les mettre dans des variables ou un array utilisable afin de les comparé avec celle des autres personnes

    mais je bloque

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Par défaut
    j'ai mis ce 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    while( $planning = $sql->fetch()){
     
     
    if(   $planning['matricule'] == $_SESSION["login"]  ){
     
     
     
    $utilisateur_fin =  array($planning["fin_pdj"]) ;
     
     
    }
     
     
     
      foreach( $utilisateur_fin as $x ){
     
     
    if( $x == $planning["fin_pdj"] ){
     
     
    /* on masquel'image */
     
     
    }
     
    else{
     
     
     
    /* on affiche l'image */
     
     
    }
     
     
     
     
     }
     
    }
    ça fonctionne mais qu'avec le premier utilisateur de ma BDD quand c'est les autres qui sont connecter ça ne fonctionne pas

    je ne sais pas pourquoi

  5. #5
    Membre chevronné Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 165
    Par défaut
    Je vois que tu utilises $_SESSION['login'] pour connaitre ton utilisateur connecté.
    Utilise cette information pour faire une requête pour récupérer les informations utilisateurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    $sql_planning = $bdd->query("SELECT *  FROM  planning, agents  WHERE  date_plann  BETWEEN '" . $dbx . "' AND '" . $dfx . "' AND agents.matricule = planning.matricule AND services = '" . $srv . "' AND canal = '" . $canl . "'");
    $sql_user     = $bdd->query("SELECT * FROM planning, agents WHERE agents.matricule = '" . $_SESSION[ "login" ] . "'");
     
    $user         = $sql->fetch();
     
    while( $planning = $sql_planning->fetch() )
    {
        if( $user[ 'debut_pausedej' ] !== $planning[ 'debut_pausedej' ] && $user[ 'fin_pausedej' ] !== $planning[ 'fin_pausedej' ] )
        {
            // Tu affiche ton image.
        }
    }
    Après j'ai pas ton schéma de base de données mais en le testant et l'adaptant ça devrait fonctionner.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Par défaut
    Citation Envoyé par Freudd Voir le message
    Je vois que tu utilises $_SESSION['login'] pour connaitre ton utilisateur connecté.
    Utilise cette information pour faire une requête pour récupérer les informations utilisateurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    $sql_planning = $bdd->query("SELECT *  FROM  planning, agents  WHERE  date_plann  BETWEEN '" . $dbx . "' AND '" . $dfx . "' AND agents.matricule = planning.matricule AND services = '" . $srv . "' AND canal = '" . $canl . "'");
    $sql_user     = $bdd->query("SELECT * FROM planning, agents WHERE agents.matricule = '" . $_SESSION[ "login" ] . "'");
     
    $user         = $sql->fetch();
     
    while( $planning = $sql_planning->fetch() )
    {
        if( $user[ 'debut_pausedej' ] !== $planning[ 'debut_pausedej' ] && $user[ 'fin_pausedej' ] !== $planning[ 'fin_pausedej' ] )
        {
            // Tu affiche ton image.
        }
    }
    Après j'ai pas ton schéma de base de données mais en le testant et l'adaptant ça devrait fonctionner.
    merci ça fonctionne , je voulais faire qu'une requête mais à priori il faut impérativement une autre

    merci

Discussions similaires

  1. problème conditions dans un while
    Par kevin07 dans le forum Linux
    Réponses: 4
    Dernier message: 20/07/2009, 14h42
  2. Plusieurs conditions dans un while/wend, possible?
    Par rsoul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2008, 15h10
  3. plusieurs condition dans un while
    Par realkilla dans le forum C#
    Réponses: 4
    Dernier message: 17/05/2008, 16h16
  4. Plusieurs conditions dans un while
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 11/01/2008, 17h44
  5. [Bash] mettre plusieurs conditions dans un while
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 22/07/2007, 22h44

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