Probleme de condtionnelle sous php
Résolu
leanjocker
Messages postés
154
Date d'inscription
Statut
Membre
Dernière intervention
-
Giorgiolino Messages postés 253 Date d'inscription Statut Contributeur Dernière intervention -
Giorgiolino Messages postés 253 Date d'inscription Statut Contributeur Dernière intervention -
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:
- Probleme de condtionnelle sous php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Saut de ligne php - Forum PHP
1 réponse
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.
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.