recherche de disponibilité entre deux dates

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : recherche de disponibilité entre deux dates

Re: recherche de disponibilité entre deux dates

par cogites » 16 juil. 2012, 14:45

bonjour,

je suis le webmaster de cogites.com

La fonction de moteur de recherche de locations disponible sur selogeraberlin.com est une adaptation d'e-reserv que je propose avec la version plus.

si je n'arrive pas trop tard et si vous avez des questions n'hésitez pas.

stéphane
ps : désolé pour cette remonté de post très tardive.

Re: recherche de disponibilité entre deux dates

par sirakawa » 26 déc. 2011, 20:26

Pour trouver les dates prises, il faut que la période commence avant la fin et se termine après le début..

Code : Tout sélectionner

dates simplifiées: 123456789ABCDEFG réservations existantes suite 1:_____DXXXXF____ voeu 1: VvvW voeu 2: VvvvvvvvF voeu 3: VvvvvvF voeu 4: VvW
Si je ne me trompe pas ...
toutes ces situations montrent que la réservation souhaitée est impossible:
début identique au début de l'existant : V == D peu importe la fin
début avant la fin de l'existant ou identique à la fin de l'existant V <= F peu importe la fin
début avant le début de l'existant et fin avant la fin de l'existant V < D & W <= F
Pour que la réservation soit possible:
Aucune suite n'a un début de réservation égal au début souhaité
et aucune suite n'a une fin de réservation supérieure ou égale au début souhaité
et aucune suite n'a une fin de réservation supérieure à la fin souhaitée

Re: recherche de disponibilité entre deux dates

par hamlet360 » 26 déc. 2011, 17:42

vous pouvez m'expliquer plus svp parce que je suis pas tres calé en php et mysql
j'ai juste suivi la formation avec elephorm si cous connaissez
merci d'avance

Re: recherche de disponibilité entre deux dates

par Mazarini » 26 déc. 2011, 15:53

Pour trouver les dates prises, il faut que la période commence avant la fin et se termine après le début.
Il faut ensuite faire un select imbriqué avec un not in.

Re: recherche de disponibilité entre deux dates

par hamlet360 » 26 déc. 2011, 12:48

merci sirakawa pour votre reponse
voilà ma base de donnée
vous avez tous ici
merci d'avance :

-- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Client: localhost
-- Généré le : Lun 26 Décembre 2011 à 10:46
-- Version du serveur: 5.5.8
-- Version de PHP: 5.3.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: `reserv`
--

-- --------------------------------------------------------

--
-- Structure de la table `admin`
--

CREATE TABLE IF NOT EXISTS `admin` (
`ID_admin` int(3) unsigned NOT NULL AUTO_INCREMENT,
`login_admin` varchar(40) NOT NULL,
`pass_admin` varchar(40) NOT NULL,
PRIMARY KEY (`ID_admin`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `admin`
--

INSERT INTO `admin` (`ID_admin`, `login_admin`, `pass_admin`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3');

-- --------------------------------------------------------

--
-- Structure de la table `locataires`
--

CREATE TABLE IF NOT EXISTS `locataires` (
`ID_locataire` smallint(11) unsigned NOT NULL AUTO_INCREMENT,
`titre` varchar(4) NOT NULL,
`nom_locataire` varchar(30) NOT NULL,
`prenom` varchar(30) NOT NULL,
`rue` varchar(70) NOT NULL,
`codepostal` varchar(10) NOT NULL,
`ville` varchar(70) NOT NULL,
`pays` varchar(70) NOT NULL,
`tel` varchar(25) NOT NULL,
`tel_portable` varchar(25) NOT NULL,
`email` varchar(50) NOT NULL,
`commentaires` text NOT NULL,
`nbr_sejour` smallint(11) unsigned NOT NULL,
`date_enreg_locataire` date NOT NULL,
PRIMARY KEY (`ID_locataire`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

-- --------------------------------------------------------

--
-- Structure de la table `locations`
--

CREATE TABLE IF NOT EXISTS `locations` (
`ID_location` smallint(11) NOT NULL AUTO_INCREMENT,
`nom_location` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`ID_location`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- Contenu de la table `locations`
--

INSERT INTO `locations` (`ID_location`, `nom_location`, `description`) VALUES
(2, 'berberes', 'Chambre Berberes Lit 140 x 190, salle d''eau,climatisation réversible, petit coin salon avec Tv satellite, lecteur de DVD.'),
(3, 'bedouins ', 'Suite Bedouins Lit a baldaquin 160 x 200 et Canapé lit de 90 x 190, salle d''eau, climatisation réversible, coin salon avec Tv satellite, Ordinateur accès internet, lecteur de DVD, coffre-fort.'),
(4, 'Sahara', 'Chambre Sahara Lit 140 x 190, salle d''eau, climatisation réversible, petit coin salon.'),
(5, 'Oasis', 'Chambre Oasis Lits 140 x 190 et 90 x 190, climatisation réversible, salle d''eau indépendante sur le palier .'),
(6, 'touaregues', 'Chambre Touaregue Lit 140 x 190, salle d''eau, climatisation réversible, petit coin salon, bureau.'),
(7, 'Tataoui', 'Chambre Tataoui 3 Lits 90 x 190, salle d''eau, climatisation réversible.');

-- --------------------------------------------------------

--
-- Structure de la table `reserv`
--

CREATE TABLE IF NOT EXISTS `reserv` (
`ID_reserv` smallint(11) unsigned NOT NULL AUTO_INCREMENT,
`ID_location` smallint(11) unsigned NOT NULL,
`ID_locataire` smallint(11) unsigned NOT NULL,
`datedeb` date NOT NULL,
`datefin` date NOT NULL,
`date_enreg` date NOT NULL,
`prix` decimal(6,2) NOT NULL,
`commentaire_reserv` text NOT NULL,
`nbr_adultes` smallint(3) NOT NULL,
`nbr_enfants_inf_2` smallint(3) NOT NULL,
`nbr_enfants_2_13` smallint(3) NOT NULL,
`pmr` smallint(3) NOT NULL,
PRIMARY KEY (`ID_reserv`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Re: recherche de disponibilité entre deux dates

par sirakawa » 25 déc. 2011, 21:12

Le premier point serait de savoir comment tu stockes tes réservations:
autrement dit quelle est la structure de la base de données à consulter?

Re: recherche de disponibilité entre deux dates

par hamlet360 » 25 déc. 2011, 01:32

merci sirakawa pour votre reponse
j'ai regardé la discussion que vous m'avez indiqué mais je vois pas comment je peux faire ça

qqun pourrais svp me dire commet je peux proceder ? parce que j'en ai vraiment besoin et ça fait longtemps que je suis entrain de faire des recherches sur google sans succes
merci d'avance

Re: recherche de disponibilité entre deux dates

par sirakawa » 23 déc. 2011, 10:35

Tu devrais suivre cette discussion:
php-debutant/comparer-deux-dates-t261813.html

recherche de disponibilité entre deux dates

par hamlet360 » 20 déc. 2011, 22:46

bonjour tout le monde
je suis débutant en php et j'ai pas assez de connaissance pour comprendre ce script.
j'ai trouvé un script qui m'interresse beaucoup qui s'appelle Ereserv que vous pouvez voir ici : http://cogites.com/e_reserv/index.php
j'ai trouvez un utilisateur qui la rendu encore plus interressant et c'est ce que je voudrais integré dans mon site, en effet, il ont mis en sort que le client puisse cherche si les chambre sont disponible seulement en mettant la date d'arrivee et la d'ate de depart que vous pouvez voir ici, http://selogeraberlin.com/index.php

si vous avez compris, merci de me donner des indices afin de mettre ça en place