login  Naam:   Wachtwoord: 
Registreer je!
 Forum

controleren op beschikbaarheid.

Offline thomasje - 24/07/2008 19:44
Avatar van thomasjeMySQL beginner Hoe kan ik het beste controleren of er op een bepaalde datum (of meerdere ) al geboekt is. Ik wil dus zoeits als de site http://www.book...2008-07-31 de controle formuliertje bovenin.
In mijn db staat de datum vanaf en tot wanneer de mensen hebben geboekt. Wie kan mij vertellen hoe ik dit het beste kan doen?

15 antwoorden

Gesponsorde links
Offline Rik - 25/07/2008 09:00
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Voer een query uit waarin je telt hoeveel kamers er al bezet zijn op het moment van aankomst én hoeveel er al bezet zullen zijn voor het moment van vertrek.

Als je dit aantal weet en je weet hoeveel kamers er zijn, dan weet je ook hoeveel kamers er nog beschikbaar zijn in de opgegeven periode. Als dat er minimaal 1 is, is er een kamer beschikbaar.

Afhankelijk van je database structuur kun je ook een overzichtje ophalen van beschikbare kamers en de klant daartussen laten kiezen. Daarvoor moet je natuurlijk wel een tabel hebben waarin alle kamers staan.
Offline thomasje - 25/07/2008 09:12
Avatar van thomasje MySQL beginner bedankt voor je reactie maar dit gaat helaas niet omdat het allemaal verschillende bungalows zijn.
Offline Rik - 25/07/2008 09:23
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
In princiepe maakt het niets uit of je een bungalow of een kamer reserveert. 

Post eens je precieze db structuur, misschien kan ik dan een voorbeeld query laten zien?
Offline thomasje - 25/07/2008 09:27
Avatar van thomasje MySQL beginner Mijn db tabel (gaat om aankomst_datum en vertrek_datum)

  1. CREATE TABLE IF NOT EXISTS `boeken` (
  2. `id` int(111) NOT NULL AUTO_INCREMENT,
  3. `datum` mediumtext NOT NULL,
  4. `tijd` mediumtext NOT NULL,
  5. `ip` mediumtext NOT NULL,
  6. `klant_id` mediumtext NOT NULL,
  7. `aankomst_datum` date NOT NULL,
  8. `vertrek_datum` date NOT NULL,
  9. `soort` mediumtext NOT NULL,
  10. `week` mediumtext NOT NULL,
  11. `a_tijd` mediumtext NOT NULL,
  12. `v_tijd` mediumtext NOT NULL,
  13. `schoonmaken` mediumtext NOT NULL,
  14. `aantal_weken` mediumtext NOT NULL,
  15. `huisje` mediumtext NOT NULL,
  16. `administratie` mediumtext NOT NULL,
  17. `water` mediumtext NOT NULL,
  18. `totaal` varchar(9999) NOT NULL,
  19. PRIMARY KEY (`id`)
  20. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Ik heb verder nog bijna niks van de pagina zelf omdat ik eerst wou weten hoe ik dit kon oplossen.
Offline Berten - 25/07/2008 09:42
Avatar van Berten PHP beginner Wil je testen op specifiek 1 bungalow, of wil je weten hoeveel bungalows er vrij zijn?
Offline Rik - 25/07/2008 09:45
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Heb je ook ergens in je script of in de database een overzicht van alle huisjes staan?

Want je kunt nu wel controleren hoeveel boekingen er zijn, maar als je niet weet hoeveel (en welke) huisjes er nog vrij zijn heb je daar nog niets aan.
Offline thomasje - 25/07/2008 09:52
Avatar van thomasje MySQL beginner nee nog niet aar dat wil ik in mijn script zetten omdat het voorlopig nogmaar om 5 huisjes gaat ze willen dit weer verder uitbreiden. Ik wil dus echt testen op een specifiek huisje. Maar het gaat vooral om het controleren iets bijbouwen voor meerdere huisjes lukt mij wel maar niet te controleren of de huisjes bezet of niet bezet zijn.
Offline WouterPSV - 25/07/2008 10:02 (laatste wijziging 25/07/2008 10:02)
Avatar van WouterPSV Lid Het lijkt met trouwens ook niet echt werken om een varchar 9999 te maken   

  1. `totaal` varchar(9999) NOT NULL,


Je kunt normaal toch maar tot 255?
Offline thomasje - 25/07/2008 10:04
Avatar van thomasje MySQL beginner dat weet ik niet, ik ben ook nog niet echt een gevorderde. en ik zet hem altijd maar zo hooh mogelijk.
Offline Berten - 25/07/2008 10:14 (laatste wijziging 25/07/2008 11:18)
Avatar van Berten PHP beginner
  1. SELECT * FROM boeken WHERE a_tijd <= dedatumwaaropjecheckt AND v_tijd > dedatumwaaropjecheckt


Als je een result krijgt ==> bezet op die dag
Als je geen result krijgt ==> vrij op die dag

controleer voor de startdatum en einddatum voor de test, als allebij vrij zijn ...

Offline thomasje - 25/07/2008 11:00
Avatar van thomasje MySQL beginner
ja maar de mensen kunnen ook 10 dagen boeken terwijl daarvan maar 1 dag bezet is, ze moeten dan ook de waarde van bezet krijgen.
Offline Rik - 25/07/2008 11:10
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Wat bedoel je met de waarde van bezet? Is dat de datum van wanneer het huis wel weer beschikbaar is?

Ik zou echt een tabel aanmaken waarin die huizen staan. Ook al zijn het er maar 5, dat is echt veel makkelijker om daar queries voor te maken. Dan kun je ook per huis opvragen wanneer die nog vrij is.
Offline thomasje - 25/07/2008 11:28
Avatar van thomasje MySQL beginner nee dat de mensen zien dat ze op die datum(s) niet kunnen boeken voor dat huisje
Offline Rik - 25/07/2008 11:37
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dus ze de mensen boeken op één specifiek huisje? En als die bezet is is dat jammer en dan moeten ze het opnieuw proberen met een ander huis? In dat geval kun je toch de code van Berten gebruiken?

Het lijkt mij zelf gebruikersvriendelijker als je een overzicht van beschikbare huisjes weergeeft... Maar dat moet je natuurlijk zelf weten!
Offline thomasje - 30/07/2008 16:38 (laatste wijziging 30/07/2008 16:42)
Avatar van thomasje MySQL beginner ik zit nog steeds helaas met de fout dat hij het niet goed controleerd, het kan dus ook zijn dat mensen boeken maar op een andere begin datum en een andere einddatum en deze 2 boekingen elkaar net overtreffen met 1 of meerdere dagen ook dan moeten ze natuurlijk te zienkrijgen dat ze niet kunnen boeken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.17s