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 :

Récupération heure debut et heure fin [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Récupération heure debut et heure fin
    Bonjour tout le monde,

    J'ai une table qui ressemble à :
    id 	date 		debut 		fin 		
    42 	2012-11-01 	10:30:00 	18:51:00 	
    38 	2012-11-01 	08:30:00 	16:51:00 	
    43 	2012-11-01 	12:30:00 	20:51:00
    Je voudrai utiliser une requête SQL qui détermine pour la date 2012-11-01 l'heure de début minimale (8h30) et l'heure maximale (20h30) entre toutes les résultats obtenues.

    Cordialement

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Points : 491
    Points
    491
    Par défaut
    Bonjour,

    Je pense que tu cherche une requete dans le style de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $debut = 08:30:00;
    $fin= 20:30:00;
    $con=(new Connection())->connect();
    $resultats=$con->query("SELECT * FROM table WHERE start < CAST('".$debut."' AS time) AND end > CAST('".$fin."' AS time)");

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci Malinaka pour votre réponse,

    Quand j’exécute cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM matable WHERE debut < CAST('"08:30:00"' AS time) AND fin > CAST('"20:30:00"' AS time)
    J'ai cette réponse de MySQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MySQL n'a retourné aucun enregistrement. (traitement: 0.0015 sec.)
    Ce que je veux faire exactement c'est :

    1) Récupérer l'heure de début minimale et de fin maximale pour chaque date dans ma table.
    2) Utiliser les résultats obtenues pour déterminer si la plage horaire entre 8h00 et 22h00 est couverte.
    3) Afficher VRAI ou FAUX selon les résultats

    Cordialement

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT id, date, MIN(debut) AS debut, MAX(fin) AS fin FROM maTable
    GROUP BY date;
    cette requête devrait faire l'affaire, ensuite pour tester si la plage horaire est couverte tu traite le résultat de ta requête en php.

    Tu peu ajouter un WHERE date = maDate pour afficher le résultat pour une date choisit.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT id, date, MIN(debut) AS debut, MAX(fin) AS fin FROM maTable
    GROUP BY date;
    cette requête devrait faire l'affaire, ensuite pour tester si la plage horaire est couverte tu traite le résultat de ta requête en php.

    Tu peu ajouter un WHERE date = maDate pour afficher le résultat pour une date choisit.
    Bonjour Exia93,

    Merci pour votre réponse.

    Voici ce que j'ai fait actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	$sqlclichy = requete ("SELECT MIN(debut) AS debut,MAX(fin) AS fin FROM $_db_tables[evenements] WHERE date = '$annee-$mois-$jr' AND marqueur = 'CLICHY';");
    	$clichy = mysql_fetch_array ($sqlclichy);
    	$debutclichy = $clichy['debut'];
    	$finclichy = $clichy['fin'];
    	if ( $debutclichy == "08:00:00" AND $finclichy == "22:00:00" )
    	{
    		$resuclichy = 'Vrai';
    		$groupc_class = "vrai";
    	}
    	else
    	{
    		$resuclichy = 'Faux';
    		$groupc_class = "faux";
    	}
    Pour le moment il ne test que l'heure du début et de fin pas la plage.

    Cordialement

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Si $debutclichy et $finclichy valide bien ta condition alors c'est que la plage est bien couverte non ?

    EDIT : Pour la condition fait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( $debutclichy <= "08:00:00" AND $finclichy >= "22:00:00" )
    Comme sa si dans la l'heure de début est de 7h30 et l'heure de fin est de 23h ta plage est donc couverte.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Si je met le code comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( $debutclichy <= "08:00:00" AND $finclichy >= "22:00:00" )
    J'ai une erreur PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected T_DOUBLE_ARROW in
    Car je crois qu'il essai de comparer une chaine de caractères à un nombre et il n'aime pas.
    Cordialement

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    La requête te retourne des Strings normalement même si ce qui est stocké est un nombre dans la BDD,

    fait un var_dump() de $debutclichy et de $finclichy s'il-te-plaît.

    EDIT : A quoi correspond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sqlclichy = requete ()
    Que contient cette fonction ?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour Exia93,

    J'ai résolu le problème comme ça :

    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
    	// Début de vérification de la plage horaire Clichy
    	$groupc_class = "vue1_vacances_c_no";
    	$sqlclichy = requete ("SELECT MIN(debut) AS debut,MAX(fin) AS fin FROM $_db_tables[evenements] WHERE date = '$annee-$mois-$jr' AND marqueur = 'CLICHY';");
    	$clichy = mysql_fetch_array ($sqlclichy);
    	$debutclichy = $clichy['debut'];
    	$debclichy = str_replace(":","",$debutclichy);
    	$finclichy = $clichy['fin'];
    	$endclichy = str_replace(":","",$finclichy);
    	if ( $debclichy <= 80000 && $endclichy >= 220000 )
    	{
    		$resuclichy = 'Vrai';
    		$groupc_class = "vrai";
    	}
    	else
    	{
    		$resuclichy = 'Faux';
    		$groupc_class = "faux";
    	}
    C'est du bidouillage mais ça fonctionne pour le moment.

    Cordialement

  10. #10
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    salut ;
    C'est du bidouillage mais ça fonctionne pour le moment.
    fait attention au bidouillage : rira bien qui rira le dernier
    je plaisante faut pas arrêté a la première solution qui fonctionne , faut vérifier que c'est la bonne solution .
    http://dev.mysql.com/doc/refman/5.0/...functions.html
    bonne lecture.
    NB/ essaye de passé en PDO ou mysqli.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci tout le monde, c'est résolu.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/01/2015, 08h56
  2. GWT Récupération de données à une heure précise
    Par Jacky31 dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 13/07/2010, 11h10
  3. fonction javascript heure debut<heure fin
    Par johan0510 dans le forum Général JavaScript
    Réponses: 52
    Dernier message: 02/04/2010, 10h58
  4. [MySQL] fonction php heure debut<heure fin
    Par johan0510 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/03/2010, 13h53
  5. soustraction heure fin et heure debut
    Par Maria1505 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 17/08/2007, 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