Réservation - disponibilité de chambres entre deux dates [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 8 novembre 2017
Statut
Membre
Dernière intervention
8 novembre 2017
-
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017
-
Bonjour,
je ne sais pas vraiment comment m'y prendre pour contrôler la disponibilité des chambres
de telle date à telle date.
voila ma fonction et sa march juste pour la date d'arrivée et la date de d'épar mai entre les deux sa fonctionne pas

public function form_room_select($arrive = null,$dpart = null, $lang = null){
global $wpdb;
$option = "";

if(!empty($arrive)):
if(empty($lang))
$lang = "fr";

$arrive = new DateTime($arrive);
$arrive = $arrive->format('Y-m-d');

$dpart = new DateTime($dpart);
$dpart->modify('-1 day');
$dpart = $dpart->format('Y-m-d');

$sql = "SELECT `id_booking_setting` as id, `txt_".$lang."` as txt
FROM `{$wpdb->prefix}booking_setting`
WHERE `type_booking_setting` = 'chambre'
AND `id_booking_setting` not in (
SELECT `chambre_id_booking`
FROM `{$wpdb->prefix}booking`
WHERE class_booking != 'annuler'
and ( `date_arrivee_booking` between '".$arrive."' and '".$dpart."'
and DATE_ADD(`date_depart_booking`, INTERVAL -1 DAY) between '".$arrive."' and '".$dpart."' )
) group by `id_booking_setting`";
$rooms = $wpdb->get_results($sql);


if(!empty($rooms))
foreach($rooms as $ro)
$option .= "<option value='".$ro->id."/".str_replace(array("\\","'")," ",$ro->txt)."'>".str_replace("\\","",$ro->txt)."</option>";
endif;

return $option;
}


|-
| style="background-color:#fc8b2f;border: 1px solid transparent"| EDIT : Mise en forme du code en utilisant correctement les balises de code (la coloration syntaxique).


== Explications disponibles ici :ICI ==

Merci d'y penser dans tes prochains messages.
Jordane45
>
A voir également:

3 réponses

Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Bonjour,

Ton souci se situe donc au niveau de ta requête non ?
Dans ce cas... c'est dans le forum SQL qu'il aurait fallu poster...

Quoi qu'il en soit.. sans connaitre la structure de ta bdd ni avoir quelques exemples de données ... il nous sera difficile de te répondre.

Mais bon.. déjà.. pourquoi fais tu un DATE_ADD -1 jour sur le champ date_depart_booking... A moins que ça ne soit pour coller avec ta ligne de code php:
$dpart->modify('-1 day');

Et là.. pourquoi retirer un jour à ta variable $dpart ??



Et puis... une requête... ça commence par se tester DIRECTEMENT dans la bdd !
Tu ne l'utilises dans ton code php qu'une fois que tu t'es assuré qu'elle fonctionne....
http://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql
Messages postés
2
Date d'inscription
mercredi 8 novembre 2017
Statut
Membre
Dernière intervention
8 novembre 2017

salut jordane
je suis pas un développeur , j'arrive pas de comprendre pourquoi je veux juste modifier cette partie de mon site site et j'arrive plus
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Ca ne sert à rien d'ouvrir 10 fois la même question sur le forum...
Par contre..si tu veux de l'aide il nous faut ce que je t'ai demandé.... Un dump de ta bdd.



Cordialement, 
Jordane                                                                 
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337 >
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017

Ben des données dans tes tables...pas juste la structure
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017
>
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020

c'est ca ??
--
-- Déchargement des données de la table `wp_booking`
--

INSERT INTO `wp_booking` (`id_booking`, `nom_booking`, `email_bokking`, `tel_booking`, `chambre_nom_booking`, `chambre_id_booking`, `lang_booking`, `source_name_booking`, `source_id_booking`, `date_arrivee_booking`, `date_depart_booking`, `message_booking`, `state_booking`, `date_ajouter_booking`, `date_valider_booking`, `class_booking`) VALUES
(1, 'test1', 'test@test.com', '0635698574', 'Chambre Aloe Vera', 2, 'fr', 'test1', 4, '2017-11-01', '2017-11-07', 'kkkkhhhh', 'Annuler', '2017-11-01', '2017-11-07', ''),
(3, 'rrr', 'ahmed.amine.saaa@gmail.com', '0635698574', 'test chambre fr', 5, 'fr', 'dar souran tanger', NULL, '2017-11-02', '2017-11-09', '', 'Annuler', '2017-11-01', '2017-11-01', 'annuler'),
(4, 'jnj', 'jkbjk@jhj.com', '0635698574', 'Chambre Zinnia', 3, 'fr', 'dar souran tanger', NULL, '2017-12-01', '2017-12-07', 'hghj', 'Valide', '2017-11-01', '2017-11-07', 'valide'),
(6, 'test1', 'ahmed.amine.saaa@gmail.com', '0635698574', 'Chambre Aloe Vera', 6, 'fr', 'dar souran tanger', NULL, '2017-11-08', '2017-11-12', '', 'En attente', '2017-11-08', NULL, 'enattend'),
(7, 'tt', 'llll@llll.com', '0699554433', 'Chambre Aloe Vera', 6, 'fr', 'test1', 4, '2017-11-09', '2017-11-11', 'hhgh', 'Annuler', '2017-11-08', '2017-11-08', 'annuler'),
(8, 'jjjjj', 'gg@ggg.com', '0635698574', 'Chambre Aloe Vera', 6, 'fr', 'test1', 4, '2017-11-09', '2017-11-10', 'jjj', 'Annuler', '2017-11-08', '2017-11-08', 'annuler'),
(9, 'test2', 'ahmed.amine.saaa@gmail.com', '0635698574', 'Chambre Aloe Vera', 6, 'fr', 'Aux3portes tanger', NULL, '2017-11-20', '2017-11-26', 'kjl', 'Valide', '2017-11-15', '2017-11-15', 'valide');


-
-- Déchargement des données de la table `wp_booking_setting`
--

INSERT INTO `wp_booking_setting` (`id_booking_setting`, `type_booking_setting`, `txt_fr`, `txt_en`, `txt_es`, `type_msg`) VALUES
(1, 'email', 'ahmed.amine.saaa@gmail.com', NULL, NULL, NULL),
(4, 'source', 'test1', NULL, NULL, NULL),
(6, 'chambre', 'Chambre Aloe Vera', 'Aloe Vera Room', '', NULL),
(7, 'chambre', 'Chambre Arum', 'Arum Room', '', NULL),
(8, 'chambre', 'Chambre Iris', 'Iris Room', '', NULL),
(9, 'chambre', 'Chambre Jasmin', 'Jasmin Room', '', NULL),
(10, 'chambre', 'Chambre Laurier', 'Laurier Room', '', NULL),
(11, 'chambre', 'Chambre Zinnia', 'Zinnia Room', '', NULL);
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337 >
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017

oui.
Je regarderai plus tard. Là je ne vais pas avoir le temps.
Bonne soirée.
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017
>
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020

bonjour monsieur jordane,
j'attend ta reponce
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017

merci
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337
Bonjour,

Déjà ... évite les UP .... ça ne sert à rien.
Les gens répondent lorsqu'ils le peuvent....

Ensuite, essaye ça :
SET @datearrivee = '2017-11-02';
SET @datedepart = '2017-11-09';


SELECT `id_booking_setting` as id, txt_fr as txt 
     FROM `wp_booking_setting` S
     WHERE `type_booking_setting` = 'chambre'
     AND `id_booking_setting` NOT IN (
            SELECT  `chambre_id_booking`
            FROM `wp_booking` B
            WHERE class_booking != 'annuler'
             AND ( @datearrivee between date_arrivee_booking AND DATE_ADD(date_depart_booking,INTERVAL +1 DAY)
              OR   @datedepart between date_arrivee_booking AND DATE_ADD(date_depart_booking,INTERVAL +1 DAY) )


Ca devrait donner ce que tu cherches.

NB: Teste DANS TA BDD directement......

Lorsque tu mettras ton code en php, il faudra retirer les deux premières lignes ( les SET ) et remplacer les variables
@datearrivee et @datedepart par tes variables php.

Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017
>
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020

merci bcp
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337 >
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017

Pense à mettre le sujet en résolu
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017
>
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020

oui s'est résolu
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020
337 >
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017

ben dans ce cas .... clique sur le lien 'METTRE EN RESOLU' qui se situe sous le titre de ta question
Messages postés
19
Date d'inscription
mercredi 15 novembre 2017
Statut
Membre
Dernière intervention
20 novembre 2017
>
Messages postés
29569
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 septembre 2020

j'arrive pas de trouvé le lien 'METTRE EN RESOLU'