Probleme de condtionnelle sous php

Résolu/Fermé
leanjocker Messages postés 154 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 8 août 2014 - 26 mars 2010 à 08:46
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 - 26 mars 2010 à 09:49


Bonjour, je suis en terminale GSI et pour mon projet de fin d'année je doit remettre en etat un site. Ma tache principale consiste a mettre en place une gestion des reservations de gite pour pouvoir reserver je doit verifier si le gite choisi est libre (comparaison des dates). Mais le probleme c'est que je veut enregistrer la reservation que si elle est possible mais je n'arrive pas a mettre la bonne formule. J'ai entrer dans ma page php :

<html>
<head>
<title>reservation valider</title>
</head>
<body>

<?php

$datedeb=$_POST['DateResDeb'];
$datefin=$_POST['DateResFin'];
$gite=$_POST['NoGite'];

$idconnexion=mysql_connect('localhost','root','mysql') or die("Désolé, connexion impossible au serveur !");
$bd1=mysql_select_db('gdv') or die("Désolé, connexion à la base impossible");

$req1="select * from reservation where NoGite="."$gite"." and DateResFin>"."$datedeb"." and DateResDeb>"."$datefin";
if(is_null($req1))
{$req2="insert into reservation values(NULL,'$datedeb','$datefin','$gite');";
$res1=mysql_query($req1) or die("Désolé, la requête ne fonctionne pas");
echo "votre reservation a bien été enregistrée";
echo "votre reservation se déroule du"." $datedeb"." au"."$datefin"." au gite numéro"." $gite";}
else {"votre reservation est impossible";}

mysql_close($idconnexion);
?>
</body>
</html>
merci d'avance de votre aide (ma prof ne m'est d'aucun secours)
A voir également:

1 réponse

Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
Modifié par Giorgiolino le 26/03/2010 à 09:50
Bonjour,

quelques remarques préalables :

1/ $req1="select [...]
C'est le texte de ta requête mais pas encore la requête mysql.

2/ is_null($req1)
J'imagine qu'ici tu voudrais vérifier que la requête ne renvoie aucun résultat (aucune réservation enregistrée),
sauf que tu n'as fait aucune requête pour le moment (cf. 1/). Donc tu testes en fait une variable php et non le résultat d'une requête.
Ce qu'il faudrait faire c'est :
- créer la requête --> mysql_query()
- l'exécuter --> mysql_fetch_[array | assoc | row | ...]
- compter le nombre de lignes du résultat
: C'est ce nombre que tu vas tester. S'il vaut 0 (zéro), alors on peut penser qu'il n'y a aucune réservation déjà faite. Et donc, tu peux effectuer la nouvelle. Attention toutefois, ici je ne vois pas apparaître la notion de nombre de chambres/appartements de ton gîte.

3/$req2="insert into reservation values(NULL,'$datedeb','$datefin','$gite');";
Pourquoi le "NULL" en première valeur ? Rassures-moi, ça ne correspond pas à la clé primaire de ta table !?

4/$res1=mysql_query($req1) or die("Désolé, la requête ne fonctionne pas");

C'est la requête que tu aurais du faire AVANT de tester si elle renvoie un résultat.

En tenant compte de ces remarques, tu devrais déjà y voir plus clair.

Bon courage.
0