par
two3d » 12 janv. 2025, 17:38
Écris ta requête avec des sauts de lignes pour facilité la lecture :
$reponse02 = $bdd->prepare("
SELECT
chambre.numerochambre
FROM
chambre
LEFT JOIN
reservation
ON
chambre.numerochambre = reservation.numerochambre
AND
chambre.codechambre = reservation.codechambre
AND
reservation.datearrivee = '".$daterecherchee."'
AND
reservation.datedepart <= '".$daterechercheefin."'
WHERE
reservation.numerochambre IS NULL
ORDER BY
chambre.numerochambre ASC
");
je vois que tu as mis = au lieu de >= à
reservation.datearrivee = '".$daterecherchee."'
C'est pas bon, il te faut impérativement >=, et pas =.
Ensuite, je pense qu'il te faudra une deuxième requête, while celle-ci, en prenant soin de SELECT les autres colonnes nécessaire au futur traitement, en plus de "chambre.numerochambre", puis fait un while.
Si tu souhaite faire en 1 requête, il te faut ajouter une condition à WHERE (à adapter à tes colonnes bien sûr) :
$reponse02 = $bdd->prepare("
SELECT
chambre.numerochambre
FROM
chambre
LEFT JOIN
reservation
ON
chambre.numerochambre = reservation.numerochambre
AND
chambre.codechambre = reservation.codechambre
AND
reservation.datearrivee >= '".$daterecherchee."'
AND
reservation.datedepart <= '".$daterechercheefin."'
WHERE
reservation.numerochambre IS NULL
AND
chambre.places >= '$nombre_de_place_recherchees'
ORDER BY
chambre.numerochambre ASC
");