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 :

enregistrer une plage horaire dans base de données mysql [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
    Mars 2010
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 271
    Par défaut enregistrer une plage horaire dans base de données mysql
    bonjour,

    j'ai un problème concernant l'enregistrement d'une plage horaire. Je m'explique. J'ai un formulaire ou l'on peut mettre l'heure de début et l'heure de fin d'une réservation.

    exemple :
    Le 03/10/2010
    De : 14 h
    A : 16 h
    État : réservée

    Cependant dans ma base de données cela enregistre l'heure de début et l'heure de fin. Il me faudrait une fonction permettant d'enregistrer 15h aussi et je ne vois pas trop comment faire. quelqu'un peut-il m'aider?

    je laisse mon fichier joint si vous voulez regarder précisément.

    Merci!
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    D'ou sort ce 15h ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  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
    Cependant dans ma base de données cela enregistre l'heure de début et l'heure de fin
    JE vois pas bien ou est le problème. Si tu as l'heure de début et l'heure de fin tu as une plage horaire et donc ton 15h est implicitement contenu dans cet interval.

    C'est à toi ensuite de faire ce qu'il faut pour l'affichage.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2010
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 271
    Par défaut
    je m'explique d'avantage...

    J'ai une table évènements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE evenements(
    id_evenement INT NOT NULL AUTO_INCREMENT,
    jour_evenement VARCHAR(2) NOT NULL,
    mois_evenement VARCHAR(2) NOT NULL,
    annee_evenement VARCHAR(4) NOT NULL,
    heure VARCHAR(2),
    id_etat INT,
    constraint Pk_evenements Primary key (id_evenement),
    constraint Fk_evenements Foreign key (id_etat) References etat (id_etat))TYPE=InnoDB;
    Dans cette table évènements j'ai le champ HEURE.

    J'ai un formulaire de saisi d'un évènement :
    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
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
    include ('traitements.php');
    connectDB();
     
    	// Variables vides pour les valeurs par défaut des champs
    	$date = date("d/m/Y", time()); $heure_debut=""; $heure_fin=""; $id_etat="";
     
     
    	if (isset($_POST['envoi']))
    	{
    		//création de la requète d'insertion
    		$date = htmlentities($_POST['date']); //htmlentities — Convertit tous les caractères éligibles en entités HTML //addslashes — Ajoute des antislashs dans une chaîne;
    		$heure_debut = htmlentities($_POST['heure_debut']);
    		$heure_fin = htmlentities($_POST['heure_fin']);
    		$id_etat = $_POST['id_etat'];
     
    		$typeDate = "#^[0-3]?[0-9]/[0-1]?[0-9]/[0-9]{4}$#";
     
    		if (preg_match($typeDate, $date)) //preg_match — Expression rationnelle standard
    		{
    			$tabDateDeb = explode("/", $date); //explode — Coupe une chaîne en segments
    			$timestampDebut = mktime(0, 0, 0, $tabDateDeb[1], $tabDateDeb[0], $tabDateDeb[2]); //mktime —  Retourne le timestamp UNIX d'une date 
    			//Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié. 
     
    			$identifiantCommun = time();
    			$timeDuJour = $timestampDebut;
     
    			if($nbreJours <= 0) $nbreJours = 1;
     
    			if(!empty($date) && !empty($heure_debut) && !empty($heure_fin) && !empty($id_etat))
    				{
    				for($i=0 ; $i<$nbreJours ; $i++) 
    					{
    					$req = "INSERT INTO evenements VALUES ('', ".date('d', $timeDuJour).", ".date('m', $timeDuJour).", ".date('Y', $timeDuJour).", $heure_debut, $heure_fin, $id_etat)";
    					mysql_query($req) or die(mysql_error());
     
    					$timeDuJour += 86400; // On augmente le timestamp d'un jour
    					}
     
    				mysql_close();
    				$date = date("d/m/Y", time()); $heure_debut=""; $heure_fin=""; $id_etat="";
     
    				echo '<ul><li>Evénement enregistré !</li></ul>';
    				}
     
    		}
    	}
     
    	echo "<h1>Ajouter un événement</h1>
        
        <form method='post' action='#'>
        	<table id='tabAjoutEvent'>
            	<tr>
                	<td><label>Date : <input type='text' size = '10' name='date' value='$date'/></label></td>
                </tr>
    			
    			<tr>
                	<td><label>Heure Debut : <input type='text' size = '2' name='heure_debut' value='$heure_debut'/></label></td>
                    <td><label>Heure Fin : <input type='text' size = '2' name='heure_fin' value='$heure_fin'/></label></td>
    			</tr>
    
    			<td>Description de la piste : </td>
    			<td><select name='id_etat'>";
     
                $sql = ('SELECT * FROM etat');
                $req = mysql_query($sql) or die(mysql_error());
                while($data = mysql_fetch_assoc($req))
                {
    			$optionT = $data['id_etat'].' | '.$data['description_etat'];// concaténation des deux éléments de la table état
    			echo '<option value='.$optionT.'>' .$optionT. '</option>';
                }
                mysql_close();
     
    			echo "</select></td>
    			</tr>
    			
    			<tr>
    				<td><input name='reset' type='reset' value='Effacer'/></td>
                </tr>
    			
    			<tr>
    				<td colspan='2'><input type='submit' name='envoi' value='Envoyer'/></td>
    			</tr>
    			
    			
    		</table>
        </form>
    	
     	<br><a href='index.php'>Revenir à l'accueil</a>";
     
     
    	echo "<h2>Les évènements dans la base de données</h2>";
    	echo affichageEvenements();
    ?>
    Ou je rentre l'heure de début et l'heure de fin de mon évènement.

    Ce que je voudrais c'est que lorsque je rentre l'heure de début et de fin, l'heure dans la table évènement s'incrémente d'autant de ligne que d'heure.

    Exemple :

    Evenemement 1
    Heure Debut : 14
    Heure Fin : 16

    Aperçu Table Evenement :
    1 / 14
    1 / 15
    1 / 16

    Quelqu'un peut-il m'aider sur la fonction à réaliser?? Merci

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour ma part, ca serait une erreur de conception de procéder ainsi.
    sinon il suffit de faire une boucle de ton heure de début à ton heure de fin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2010
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 271
    Par défaut
    Oui sauf que pour t'expliquer plus précisément j'ai une autre table horaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE horaires(
    id_horaire INT NOT NULL AUTO_INCREMENT,
    jour VARCHAR(10),
    heure VARCHAR(2),
    id_etat INT,
    constraint Pk_horaires Primary key (id_horaire),
    constraint Fk_horaires Foreign key (id_etat) References etat (id_etat))TYPE=InnoDB;
    ou il y a le même champ heure.

    Le but étant de faire un tableau par la suite affichant pour chaque jour, si il y a ou non une réservation à une certaine heure. comme sur ce site :
    http://www.rkc.fr/complexe/dispolocation.php

    voila pourquoi je doit le faire ainsi.

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2010
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 271
    Par défaut
    j'ai modifié mon code et cela ne fonctionne toujours pas

    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
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
    include ('traitements.php');
    connectDB();
     
    	// Variables vides pour les valeurs par défaut des champs
    	$date = date("d/m/Y", time()); $heure=""; $id_etat="";
     
     
    	if (isset($_POST['envoi']))
    	{
    		//création de la requète d'insertion
    		$date = htmlentities($_POST['date']); //htmlentities — Convertit tous les caractères éligibles en entités HTML //addslashes — Ajoute des antislashs dans une chaîne;
    		$heure = htmlentities($_POST['heure']);
    		$id_etat = $_POST['id_etat'];
     
    		$typeDate = "#^[0-3]?[0-9]/[0-1]?[0-9]/[0-9]{4}$#";
     
    		if (preg_match($typeDate, $date)) //preg_match — Expression rationnelle standard
    		{
    			$tabDateDeb = explode("/", $date); //explode — Coupe une chaîne en segments
    			$timestampDebut = mktime(0, 0, 0, $tabDateDeb[1], $tabDateDeb[0], $tabDateDeb[2]); //mktime —  Retourne le timestamp UNIX d'une date 
    			//Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié. 
     
    			$identifiantCommun = time();
    			$timeDuJour = $timestampDebut;
     
    			if($nbreJours <= 0) $nbreJours = 1;
     
    			if(!empty($date) && !empty($heure) && !empty($id_etat))
    				{
    				for($i=0 ; $i<$nbreJours ; $i++) 
    					{
    					$req = "INSERT INTO evenements VALUES ('', ".date('d', $timeDuJour).", ".date('m', $timeDuJour).", ".date('Y', $timeDuJour).", $heure, $id_etat)";
    					mysql_query($req) or die(mysql_error());
     
    					$timeDuJour += 86400; // On augmente le timestamp d'un jour
    					}
     
    				mysql_close();
    				$date = date("d/m/Y", time()); $heure=""; $id_etat="";
     
    				echo '<ul><li>Evénement enregistré !</li></ul>';
    				}
     
    		}
    	}
     
    	echo "<h1>Ajouter un événement</h1>
        
        <form method='post' action='#'>
        	<table id='tabAjoutEvent'>
            	<tr>
                	<td><label>Date : <input type='text' size = '10' name='date' value='$date'/></label></td>
                </tr>
    			
    			<tr>
                	<td><label>Heure Debut : <input type='text' size = '2' name='heure_debut' value='$heure_debut'/></label></td>
                    <td><label>Heure Fin : <input type='text' size = '2' name='heure_fin' value='$heure_fin'/></label></td>";
     
    				while ($heure = $heure_debut<$heure_fin)
    				{
    				$req="INSERT INTO evenements VALUES ('', ".date('d', $timeDuJour).", ".date('m', $timeDuJour).", ".date('Y', $timeDuJour).", $heure, $id_etat)";
    				}
     
    			echo "</tr>
    
    			<td>Description de la piste : </td>
    			<td><select name='id_etat'>";
     
                $sql = ('SELECT * FROM etat');
                $req = mysql_query($sql) or die(mysql_error());
                while($data = mysql_fetch_assoc($req))
                {
    			$optionT = $data['id_etat'].' | '.$data['description_etat'];// concaténation des deux éléments de la table état
    			echo '<option value='.$optionT.'>' .$optionT. '</option>';
                }
                mysql_close();
     
    			echo "</select></td>
    			</tr>
    			
    			<tr>
    				<td><input name='reset' type='reset' value='Effacer'/></td>
                </tr>
    			
    			<tr>
    				<td colspan='2'><input type='submit' name='envoi' value='Envoyer'/></td>
    			</tr>
    			
    			
    		</table>
        </form>
    	
     	<br><a href='index.php'>Revenir à l'accueil</a>";
     
     
    	echo "<h2>Les évènements dans la base de données</h2>";
    	echo affichageEvenements();
    ?>
    Si quelqu'un voit ou est l'erreur.

  8. #8
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2008
    Messages : 19
    Par défaut
    Citation Envoyé par johan0510 Voir le message
    j'ai modifié mon code et cela ne fonctionne toujours pas

    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
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
    include ('traitements.php');
    connectDB();
     
    	// Variables vides pour les valeurs par défaut des champs
    	$date = date("d/m/Y", time()); $heure=""; $id_etat="";
     
     
    	if (isset($_POST['envoi']))
    	{
    		//création de la requète d'insertion
    		$date = htmlentities($_POST['date']); //htmlentities — Convertit tous les caractères éligibles en entités HTML //addslashes — Ajoute des antislashs dans une chaîne;
    		$heure = htmlentities($_POST['heure']);
    		$id_etat = $_POST['id_etat'];
     
    		$typeDate = "#^[0-3]?[0-9]/[0-1]?[0-9]/[0-9]{4}$#";
     
    		if (preg_match($typeDate, $date)) //preg_match — Expression rationnelle standard
    		{
    			$tabDateDeb = explode("/", $date); //explode — Coupe une chaîne en segments
    			$timestampDebut = mktime(0, 0, 0, $tabDateDeb[1], $tabDateDeb[0], $tabDateDeb[2]); //mktime —  Retourne le timestamp UNIX d'une date 
    			//Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié. 
     
    			$identifiantCommun = time();
    			$timeDuJour = $timestampDebut;
     
    			if($nbreJours <= 0) $nbreJours = 1;
     
    			if(!empty($date) && !empty($heure) && !empty($id_etat))
    				{
    				for($i=0 ; $i<$nbreJours ; $i++) 
    					{
    					$req = "INSERT INTO evenements VALUES ('', ".date('d', $timeDuJour).", ".date('m', $timeDuJour).", ".date('Y', $timeDuJour).", $heure, $id_etat)";
    					mysql_query($req) or die(mysql_error());
     
    					$timeDuJour += 86400; // On augmente le timestamp d'un jour
    					}
     
    				mysql_close();
    				$date = date("d/m/Y", time()); $heure=""; $id_etat="";
     
    				echo '<ul><li>Evénement enregistré !</li></ul>';
    				}
     
    		}
    	}
     
    	echo "<h1>Ajouter un événement</h1>
        
        <form method='post' action='#'>
        	<table id='tabAjoutEvent'>
            	<tr>
                	<td><label>Date : <input type='text' size = '10' name='date' value='$date'/></label></td>
                </tr>
    			
    			<tr>
                	<td><label>Heure Debut : <input type='text' size = '2' name='heure_debut' value='$heure_debut'/></label></td>
                    <td><label>Heure Fin : <input type='text' size = '2' name='heure_fin' value='$heure_fin'/></label></td>";
     
    				while ($heure = $heure_debut<$heure_fin)
    				{
    				$req="INSERT INTO evenements VALUES ('', ".date('d', $timeDuJour).", ".date('m', $timeDuJour).", ".date('Y', $timeDuJour).", $heure, $id_etat)";
    				}
     
    			echo "</tr>
    
    			<td>Description de la piste : </td>
    			<td><select name='id_etat'>";
     
                $sql = ('SELECT * FROM etat');
                $req = mysql_query($sql) or die(mysql_error());
                while($data = mysql_fetch_assoc($req))
                {
    			$optionT = $data['id_etat'].' | '.$data['description_etat'];// concaténation des deux éléments de la table état
    			echo '<option value='.$optionT.'>' .$optionT. '</option>';
                }
                mysql_close();
     
    			echo "</select></td>
    			</tr>
    			
    			<tr>
    				<td><input name='reset' type='reset' value='Effacer'/></td>
                </tr>
    			
    			<tr>
    				<td colspan='2'><input type='submit' name='envoi' value='Envoyer'/></td>
    			</tr>
    			
    			
    		</table>
        </form>
    	
     	<br><a href='index.php'>Revenir à l'accueil</a>";
     
     
    	echo "<h2>Les évènements dans la base de données</h2>";
    	echo affichageEvenements();
    ?>
    Si quelqu'un voit ou est l'erreur.
    je vois que tu as oublie quelque chose

    ($req = "INSERT INTO evenements VALUES ('', ".date('d', $timeDuJour).", ".date('m', $timeDuJour).", ".date('Y', $timeDuJour).", $heure, $id_etat)"

    dans la requete sql tu as oublie un champs

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

Discussions similaires

  1. recherche dans base de donnée mysql
    Par alex01pernot dans le forum Bases de données
    Réponses: 13
    Dernier message: 03/05/2020, 15h50
  2. Réponses: 2
    Dernier message: 10/06/2014, 22h51
  3. Réponses: 8
    Dernier message: 15/02/2014, 01h30
  4. Réponses: 3
    Dernier message: 17/09/2009, 15h26
  5. [MySQL] Caractères accentués dans base de données MySQL
    Par enfin dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/01/2007, 20h54

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