Effectuer une inscription à une heure qui ne soit pas prise en PHP [Résolu]

Signaler
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Bonjour à tous,
le problème que j'ai aujourd'hui est une histoire d'inscription.
une personne veut réserver à une heure et à une date, une salle.

j'ai crée la table RESERVATION avec les caractéristiques suivantes:
IdentProf clé étrangère de la table PROF (donc clé primaire de la table
PROF)

IdentLabo clé primaire + clé étrangère de la table LABO
Date clé primaire
Heure_début clé primaire
Date_réservation
Sous forme mysql
Réservation(#IdentProf,#IdentLabo, Date, Heure_debut, Date_réservation)

Le script me détecte bien que la salle est réservée a une date et a une heure mais qd il y a rien à une date et à une heure, elle échoue l'inscription. merci de bien vouloir m'aider.

reservation.htm
<html>

Réserver une salle

,
<FORM Method="POST" Action="reservation.php">
Identification du Professeur :

Identification du Laboratoire :

Date :

Heure début :

Date de réservation :

</FORM>

</html>
--------------------------------------------------------------------------------------------------------------
reservation.php

<html>
<head>
<script>
function retour()
{
history.back();
}
</script>
</head>

<?
//Connexion au serveur
if(!$conn= mysql_connect("Localhost","root","")) { echo ("Prob connexion au serveur"); exit();}

{
//Cette partie vérifie si les cases sont completées
if(isset($HTTP_POST_VARS) && !empty($HTTP_POST_VARS['heuredebut']) && !empty($HTTP_POST_VARS['datereservation']) && !empty($HTTP_POST_VARS['laboratoire']))

{
$hde=$HTTP_POST_VARS['heuredebut'];
$dre=$HTTP_POST_VARS['datereservation'];
$lab=$HTTP_POST_VARS['laboratoire'];

//Connexion a la base de données
$db= mysql_select_db("gestion_laboratoire");
if(!$db) { echo ("Problème de connexion à la base"); exit(); }

//on vérifie si l'heure de début associé à la date de réservation existe dans la base
$ide ="SELECT * from reservation where heure_debut ='".$hde."' and date_réservation='".$dre."' and IdentLabo='".$lab."'";
$ret = mysql_query($ide);
$nb= mysql_num_rows($ret);
if($nb!=0) { echo ("Cette salle est déjà réservée à cette heure là!"); exit();}

$req="Insert Into reservation Values ('$ide','$lab','$dat','$hde','$dre')";
$res= mysql_query($req,$conn);
if($res==1)
echo "insertion réussi";
else
echo "echec de l insertion";
echo "

";
echo"Retour";
//Déconnexion de la base
mysql_close($conn);
}
}
?>

</html>

16 réponses

Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

reservation.htm
<html>

Réserver une salle

,
<FORM Method= "POST" Action="reservation.php">
Identification du Professeur :

Identification du Laboratoire :

Date :

Heure début :

Date de réservation :

</FORM>

</html>
---------------------------------------------------------------------------------------------------
reservation.php


<?
//Connexion au serveur
if(!$conn = mysql_connect("Localhost","root","")) { echo ("Prob connexion au serveur"); exit();}

{
//Cette partie vérifie si les cases sont completées
if(isset($HTTP_POST_VARS) && !empty($HTTP_POST_VARS['heuredebut']) && !empty($HTTP_POST_VARS['datereservation']) && !empty($HTTP_POST_VARS['laboratoire']))

{
$lab=$HTTP_POST_VARS['laboratoire'];
$hde=$HTTP_POST_VARS['heuredebut'];
$dre=$HTTP_POST_VARS['datereservation'];
$ide=$HTTP_POST_VARS['ide'];
$dat=$HTTP_POST_VARS['dat'];

//Connexion a la base de données
$db= mysql_select_db("gestion_laboratoire");
if(!$db) { echo ("Problème de connexion à la base"); exit(); }

//on vérifie si l'heure de début associé à la date de réservation existe dans la base
$ite ="SELECT * from reservation where heure_debut ='".$hde."' and date_réservation='".$dre."' and IdentLabo='".$lab."'";
$ret = mysql_query($ite)or die(mysql_error());
$nb= mysql_num_rows($ret);
if($nb!=0)
echo ("Cette salle est déjà réservée à cette heure là");
else
{
$req="INSERT INTO Reservation Values ('$ide','$lab','$dat','$hde','$dre');";
$res= mysql_query($req,$conn);
if($res==1)
echo "insertion réussi";
else
echo "echec de l insertion";
echo "

";
echo"Retour";
//Déconnexion de la base
mysql_close($conn);
}
}
}
?>

</html>
---------------------------------------------------------------------
Merci encore sidf!!!
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

ton code est horrible :




Réserver une salle




tu as deux balises body, et ne met pas de " pour séparer les attributs... c'est pas corect..






$HTTP_POST_VARS ne s'utilise plus, utilise $_POST


echo ("Cette salle est déjà réservée à cette heure là!"); exit();



est à remplacer par :

die('Cette...');



$ret = mysql_query($ide);



il te manque un or die(mysql_error());




In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

je vois bien ton message mais ca me dit comme erreur:



Notice: Undefined variable: dat in d:\program files\easyphp1-8\www\site internet\salle\reservation.php on line 35

echec de l insertion
Retour

ma ligne 35 correspond à ca
$req="Insert Into reservation Values ('$ide','$lab','$dat','$hde','$dre')";

voilà comment j'ai essayer de faire

$ide ="SELECT * from reservation where heure_debut ='".$hde."' and date_réservation='".$dre."' and IdentLabo='".$lab."'";
$ret = mysql_query($ide);
$nb= mysql_num_rows($ret);
if($nb!=0) { echo ("Cette salle est déjà réservée à cette heure là!"); exit();}
else
{
$req="Insert Into reservation Values ('$ide','$lab','$dat','$hde','$dre')";
$res= mysql_query($req,$conn);
if($res==1)
echo "insertion réussi";
else
echo "echec de l insertion";
echo "

";
echo"Retour";
//Déconnexion de la base
mysql_close($conn);
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

autre solution qui ne marche toujours pas

//on vérifie si l'heure de début associé à la date de réservation existe dans la base
$ide ="SELECT * from reservation where heure_debut ='".$hde."' and date_réservation='".$dre."' and IdentLabo='".$lab."'";
$ret = mysql_query($ide);
$nb= mysql_num_rows($ret);
if($nb!=0)
echo ("Cette salle est déjà réservée à cette heure là");
else
{
$req="Insert Into reservation Values ('$ide','$lab','$dat','$hde','$dre')";
$res= mysql_query($req,$conn);
if($res==1)
echo "insertion réussi";
else
echo "echec de l insertion";
echo "

";
echo"Retour";
//Déconnexion de la base
mysql_close($conn);
}
}
}
?>

</html>
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

comment on déclare une date? car j'ai mis comme ça dans reservation.htm

Date :
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
pas de type date ou time en html
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
$ide ="SELECT * from reservation where heure_debut ='".$hde."' and date_réservation='".$dre."' and IdentLabo='".$lab."'";

tu utilises $ide pour definir une requete SQL
et a la fois c'est une donnée de ta base !!???
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
autrement dit tu essaies d'inserer ta chaine sql dans la table
c'est vraiment ce que tu veux ?
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

non je voudrais qu'il m'enregistre ce que j'ai demander sauf si c'est déjà pris (voir ci-dessus)
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

et j'ai commis deux erreurs c'est exact
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

maintenant j'ai ça mais ca va etre rapide car l'enregistremant c'est fait a moitie

Notice: Undefined variable: ide in d:\program files\easyphp1-8\www\site internet\salle\reservation.php on line 36



Notice: Undefined variable: dat in d:\program files\easyphp1-8\www\site internet\salle\reservation.php on line 36

insertion réussi
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
bon alors ça marche ?
Messages postés
99
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
8 septembre 2009

Notice: Undefined variable: ide in d:\program files\easyphp1-8\www\site internet\salle\reservation.php on line 36



Notice: Undefined variable: dat in d:\program files\easyphp1-8\www\site internet\salle\reservation.php on line 36

insertion réussi

je sais pas si ca vient des tables ou du programme
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
padkwa

$:?)=)
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
ceci dit tu ne devrais avoir qu'une seule page pour traiter tout ça
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

$res= mysql_query($req,$conn);



manque toujours le or die()...





$res=
mysql_query($req,$conn) or die(mysql_error());



In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)