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 :

comparer des heures venants de PHP avec d'autres venant de ma base MySQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Par défaut comparer des heures venants de PHP avec d'autres venant de ma base MySQL
    Bonjour, j'aimerais comparer des heures venants de php avec d'autres venant de ma base MySQL.
    mon champ php est de type time, mon attribut Mysql est aussi de type time. après plusieurs tests et recherche les comparaisons que je fais ne sont toujours pas prise en compte vu que le code à l'intérieur ne s’exécute pas. j'ai besoin d'aide, ci-dessous un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if ($count > 0)
        {
            while ($d = $req->fetch())
            {
                if (($hd >= $d['heure_debut'] && $hd <= $d['heure_fin']) || ($hf >= $d['heure_debut'] && $hf <= $d['heure_fin']))
                {
                    // Retour à la page d'enregistrement
                    header("ErgCours.php?idens=" . $enseigne . "&mat=" . $matiere . "&cls=" . $classe . "&prog=ok");
                }
            }
        }

  2. #2
    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 : 59
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Tu veux comparer deux périodes, et non un point fixe à une période, c'est cela ?
    en sql, ça donne ça, pour savoir si deux périodes se recoupent ne serait-ce qu'un jour :

    Mettons qu'on a le début et la fin de l'année civile, et le début et la fin d'une inscription à un club de foot...

    On peut procéder ainsi

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select * from foot
    where inscription_fin >= annee_debut AND inscription_debut <= annee_fin

    Ainsi on a un code ramassé qui retient toutes les possibilités (genre le gars qui est inscrit du 08/03/2017 au 02/01/2018 comme le gars qui est inscrit du 01/01/1970 au 31/12/3000 comme le gars qui est inscrit du 29/12/2018 au 31/12/3000...

    Toi, tu sembles avoir le même problème, mais l'une de tes deux périodes est en php, donc ça donnerait à peu près ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $sql='select * from foot
    where ? >= heure_debut AND ? <= heure_fin;';
    $stmt = $dbh->prepare($sql);
    $stmt->execute(array($ma_fin, $mon_debut));
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
       echo '<pre>';
       print_r($row);
       echo '</pre>';
    }
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    mon champ php est de type time, mon attribut Mysql est aussi de type time
    En php le type time n'existe pas , j'imagine donc que tu parle du champs html. Ce qui se transforme en string coté php
    Idem coté mysql quand tu récupère les données tu ne récupère coté php qu'une string.

    Pour avoir une comparaison valable il faut donc passer par des valeurs comparables :
    - Soit un datetime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $dt = new \DateTime($hd);
    $dt2 = new \DateTime($d['heure_debut']);
    if($dt > $dt2) {
    ...
    }
    - Soit un timestamp classic
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/12/2016, 14h13
  2. [XL-2010] Comparer des heures dans excel.
    Par vindkald dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/01/2014, 12h13
  3. Réponses: 1
    Dernier message: 16/10/2010, 12h05
  4. [XAJAX] Gestion des fichiers de fonctions php avec xajax
    Par fayred dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 22/07/2010, 10h58
  5. Utilisation de DateTime pour comparer des heures.
    Par Setsuna_00 dans le forum Modules
    Réponses: 3
    Dernier message: 03/02/2010, 12h56

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