[php] advies gezocht

Pagina: 1
Acties:

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Wie kan me helpen. Ik zit met een probleem. Iemand kan via de website (schoonheidssalon) een afspraak maken. Een afspraak bestaan uit een aantal behandelingen bijv. nagelsvijlen en nog enkele. Elke behandeling kan wisselend zijn van tijdduur. Dus moeten alle behandelingen worden opgeteld. Dan krijg je de totale duur van de afspraak. De afspraak moet dan in een MySql database worden opgeslagen. Natuurlijk bestaat er de mogelijkheid dat iemand anders al een afspraak heeft staan op die dag en tijd. Er mogen niet 2 afspraken op dezelfde tijd plaatsvinden. Hoe kan ik dit het beste realiseren?

Verwijderd

Kijken of de klant al een afspraak heeft staan..


SELECT klantnaam FROM afspraken WHERE klantnaam = 'jantje'


Als dit dan een positief resultaat geeft is het niet mogelijk om nog een afspraak te maken.

  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 03-09 17:11

GraasGast

Analogue Heaven

ghehe...dat geld dan alleen voor dezelfde klant...het gaat erom dat een bepaald tijdstip al vol zit...

je moet denk ik de dag in tijdseenheden opdelen, bv 8 uur oid.

als dan zo'n tijdseenheid al bezet is, kan je die niet meer uitkiezen in de lijst.

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Dat bedoel ik niet. Klanten mogen gerust meerdere afspraken maken. Ik bedoel dat er niet 2 afspraken om bijvoorbeeld 9:00 uur zijn om dezelfde dag.

edit:

Graasgast was me net iets voor

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 08-09 19:55
't beste systeem is nog altijd gewoon laten bellen & afspraak maken..

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Op woensdag 27 maart 2002 13:33 schreef RedHat het volgende:
't beste systeem is nog altijd gewoon laten bellen & afspraak maken..
Ik moet dit ook maar in opdracht van iemand maken.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Wat heb je al bedacht en geprobeerd?

Heb je al een DB-structuur?

Het is niet de bedoeling dat we hier je hele projectje gaan uitwerken..
Ik moet dit ook maar in opdracht van iemand maken.
idd... jij, niet wij...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • rvrbtcpt
  • Registratie: November 2000
  • Laatst online: 10-09 15:37
Deel de hele dag in in minuten. Dus van 0 tot 1440
Dan kun je een tijd die je binnenkrijgt: 10:30 omzetten in het totaal aantal minuten: 630
Dan tel je de tijden van de behandelingen bij elkaar op in minuten, dus: 15 + 10 + 20 = 45
Dan heb je van 630 tot en met 675 een afspraak. Je kunt dan wanneer iemand een tijd opgeeft controleren of dit binnen een slot valt en zo gaan schuiven of vertellen dat een behandeling te lang gaat duren.

Dit is het idee. De code mag je zelf schrijven. En als je dit gebruikt en er geld aan verdient had ik ook graag een percentage gezien.

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Op woensdag 27 maart 2002 13:35 schreef Janoz het volgende:
Wat heb je al bedacht en geprobeerd?

Heb je al een DB-structuur?

Het is niet de bedoeling dat we hier je hele projectje gaan uitwerken..
Ik heb al zeker iets uitgedacht.

Dit is het db-structuurtje.
code:
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE afspraak (
   id int(11) NOT NULL auto_increment,
   begin datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
   eind datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
   deel_dag tinyint(2) DEFAULT '0' NOT NULL,
   behandelingID int(11) DEFAULT '0' NOT NULL,
   klantID int(11) DEFAULT '0' NOT NULL,
   accept char(3) NOT NULL,
   PRIMARY KEY (id),
   UNIQUE id (id)
);

Verder heb ik bij iedere behandeling op de website een checkbox geplaatst zodat je die kunt aanvinken als die bij de afspraak hoort. Daarna kan er op verzenden worden gedrukt. En er verschijnen enkele dagen waarom je een afspraak kunt maken.

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Als je de dag gaat indelen in tijdseenheden krijg je ellendig veel records. Beter is om een nieuwe afspraak te checken met bestaande afspraken, als je je afspraken opslaat met begin- en eindtijd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Nieuwe afspraak:    +----+
Bestaande afspraak:  +----+

-> kan niet

Nieuwe afspraak:        +----+
Bestaande afspraak:   +----+

-> kan niet

Nieuwe afspraak:        +----+
Bestaande afspraak:   +-----------+

-> kan niet

Nieuwe afspraak:    +-----------+
Bestaande afspraak:  +----+

-> kan niet

Nieuwe afspraak:        +----+
Bestaande afspraak:   +----+

-> kan wel

Dit krijg je voor elkaar door een query uit te voeren waar je alle bestaande afspraken op te halen met een begin- of eindtijd die tussen de begin- of eindtijd van de nieuwe afspraak ligt OF de een geheel in de ander past. Hoe je dat doet is een kwestie van een creatieve WHERE clause bouwen.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Verwijderd

Ik zou persoonlijk een soort van online calender maken. Zodat ook de klant zelf kan kijken welke tijden er al besproken zijn en welke niet. Ik zou het persoonlijk heel irri vinden als ik 3 keer een afspraak moet maken en elke keer de melding moet krijgen dat deze tijd al besproken is.

  • froggie
  • Registratie: November 2001
  • Laatst online: 20-11-2024

froggie

Kwaaak

Jep... da's inderdaad een betere oplossing.

Kijk ook eens op BarrysWorld, daar hebben ze een systeem om gameservers te booken. Je kiest een dag en krijgt daarna een overzicht waarin je precies kunt zien hoe laat welke servers bezet zijn. Zoiets zou jij dus ook kunnen maken.
Pagina: 1