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
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Points : 32
    Points
    32
    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 : 206
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 averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    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 : 164
    Points : 377
    Points
    377
    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
    Mon projet CMS https://soosyze.com/
    Son repo github https://github.com/soosyze/soosyze

    Open source tools and free yes, but with elegance .

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Points : 32
    Points
    32
    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 : 142
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
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Points : 32
    Points
    32
    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 averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    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 : 164
    Points : 377
    Points
    377
    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.
    Mon projet CMS https://soosyze.com/
    Son repo github https://github.com/soosyze/soosyze

    Open source tools and free yes, but with elegance .

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 66
    Points : 32
    Points
    32
    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