Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 08/03/2010, 11h46   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2010
Messages : 111
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 111
Points : 11
Points : 11
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
Type de fichier : rar Calendrier.rar (24,1 Ko, 5 affichages)
johan0510 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 13h36   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
D'ou sort ce 15h ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 13h37   #3
Expert Confirmé
 
Avatar de grunk
 
Homme
Développeur Web
Inscription : août 2003
Messages : 1 628
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 628
Points : 2 728
Points : 2 728
Citation:
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.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 13h41   #4
Candidat au titre de Membre du Club
 
Inscription : mars 2010
Messages : 111
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 111
Points : 11
Points : 11
je m'explique d'avantage...

J'ai une table évènements :
Code :
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 :
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
johan0510 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 13h52   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
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.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 13h58   #6
Candidat au titre de Membre du Club
 
Inscription : mars 2010
Messages : 111
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 111
Points : 11
Points : 11
Oui sauf que pour t'expliquer plus précisément j'ai une autre table horaires :

Code :
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.
johan0510 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 16h01   #7
Candidat au titre de Membre du Club
 
Inscription : mars 2010
Messages : 111
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 111
Points : 11
Points : 11
j'ai modifié mon code et cela ne fonctionne toujours pas

Code :
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.
johan0510 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2010, 16h18   #8
Invité de passage
 
Inscription : janvier 2008
Messages : 18
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Maroc

Informations forums :
Inscription : janvier 2008
Messages : 18
Points : 3
Points : 3
Envoyer un message via MSN à mohammed_amine_wardy
Citation:
Envoyé par johan0510 Voir le message
j'ai modifié mon code et cela ne fonctionne toujours pas

Code :
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
mohammed_amine_wardy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 04h14.


 
 
 
 
Partenaires

Hébergement Web