Hoe dit het beste aan te pakken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Knorfski

Knorfski

11/12/2005 14:45:00
Quote Anchor link
Hallo Mensen,

Ik ben bezig met een camping managemente systeem. en ik ben nu bezig met het stukje dat dubbelboekingen voorkomt te schrijfen. Ik heb dus nu een tabel met alle boekingen. daarin staat begintijd (Bijv. 2004-12-11) en eind tijd (bijv. 2004-12-30), als nu iemand een boeking doet dan moet hij automatisch een veld toegewezen krijgen. (0 tm 15). Hoe kan ik dit het beste aanpakken. Ik heb nu een hele reeks if, while, en een enkele for loop maar ik denk niet dat ik het daarmee red. vandaar deze vraag:
 
PHP hulp

PHP hulp

13/05/2024 12:46:38
 
Arjan Kapteijn

Arjan Kapteijn

11/12/2005 14:47:00
Quote Anchor link
Je weet dat je de sql database een heleboel rekenwerk kan laten doen? En is het niet beter om gebruik te maken van een timestamp o.i.d.
 
Knorfski

Knorfski

11/12/2005 14:49:00
Quote Anchor link
Hallo Arjan,

Ik weet wel dat hij dat kan, maar niet echt hoe :P
Ik gebruik ook een timestamp. de Y-m-d in MySQL heet die volgens mij Datetime :)

edit:
<b>Iemand misschien een mooi voorbeeldje van rekenen met datums met MySQL </b>
Gewijzigd op 11/12/2005 15:01:00 door Knorfski
 
Frank -

Frank -

11/12/2005 15:07:00
Quote Anchor link
Een paar voorbeeldjes hoe je MySQL het rekenwerk kunt laten verrichten: http://dev.mysql.com/doc/refman/5.0/en/date-calculations.html
 
Knorfski

Knorfski

11/12/2005 15:09:00
Quote Anchor link
Maar je kunt MySQL toch geen soort van if voorwaarden stellen. dus als het bijvoorbeeld mogelijk is om die reservering op die plaats te zetten.
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 15:10:00
Quote Anchor link
Hoi Knorfski,

Y-m-d heet in MySQL een DATETIME. Leg nog eens uit wat je precies wilt?

Is het zo: iemand doet een boeking voor bijvoorbeeld 10 dagen, op 11 december 2005. Moet dan automatisch de eindtijd (21 december 2005) ingevuld worden?
 
Knorfski

Knorfski

11/12/2005 15:16:00
Quote Anchor link
Hallo Jan,

Dat heb ik al: :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$date2
    =    strtotime($aankomst);

$date3    =    strtotime("+".$aantald." day", $date2);
$date4    =    strtotime("+".$aantalw." week", $date3);
$date5    =    strtotime("+".$aantalm." month", $date4);

$vertrek1    =    $date5-$date2;

$date6    =    strftime("%Y-%m-%d", $date5);

$tijd3    =    $vertrek1 / 86400;

$tijd2    =    number_format ( $tijd3, 0, ',', '.');

?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $tijd2; ?>

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

Maar nu, als er op 1 plaats een boeking is van 2006-01-10 tot 2006-01-20 is. en iemand anders die boekt 2006-01-18 tot 2006-01-28 dan moet hij bijvoorbeeld zeggen dat die plek vol is (Later moet hij dan doorverwijzen naar plaats2, maar dat is een zaak voor later).

Ook als bijvoorbeeld een boeking staat van 2006-01-10 tot 2006-01-20 en iemand plaatst een boeking van 2005-12-11 tot 2005-12-24 dan moet hij zeggen dat je wel op plek 1 mag staan.

Ik vertel het misschien niet zo duidelijk. maar ik hoop dat je het snapt :)

www.knorfski.nl.eu.org/camping

Dat is het begin :P
Ziet er nog niet uit hoor ;)
Gewijzigd op 11/12/2005 15:27:00 door Knorfski
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 15:27:00
Quote Anchor link
Ik snap het. Wat MySQL wèl kan is een rijtje vrije plekken laten genereren voor een gegeven begindatum en einddatum. Heb je daar wat aan?

edit: Knorfski, op het admingedeelte van je site kan ik gewoon op prijzen klikken en dan ben ik binnen! Die moet je nog ff afschermen.
Gewijzigd op 11/12/2005 15:29:00 door Jan Koehoorn
 
Knorfski

Knorfski

11/12/2005 15:34:00
Quote Anchor link
Hallo Jan,

Dat weet ik :)

Maar het is verder ook nog niet in gebruik :)
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 15:42:00
Quote Anchor link
Okee, dan is het goed.

Ik ga zo een paar uur op pad. Waarschijnlijk kijk ik vanavond nog wel even. Ik geef een soort van richting aan:

Wanneer is een afspraak niet-overlappend? Als de begintijd van de een voorbij de eindtijd van de ander ligt, of andersom.

Probeer daar eens een query voor te verzinnen?

CU vanavond misschien nog!
 
Knorfski

Knorfski

11/12/2005 16:12:00
Quote Anchor link
Hallo Jan,

Het is bijde :P
Als iemand een plaats boekt op een langer termijn. en iemand anders diet boekt eerder dan. is het ervoor maar het kan ook andersom.
 
PHP erik

PHP erik

11/12/2005 16:18:00
Quote Anchor link
aanvraagB = de aangevraagde begindatum
aanvraagE = de aangevraagde einddatum
dbB = begindatum van reeds in database staande boekingen
dbE = einddatum van reeds in database staande boekingen

"... WHERE (aanvraagE < dbB) OR (aanvraagB > dbE) ... "

Dan heb je 'em
 
Knorfski

Knorfski

11/12/2005 16:23:00
Quote Anchor link
Hallo Jan,

Het is beide:P
Als iemand een plaats boekt op een langer termijn. en iemand anders diet boekt eerder dan. is het ervoor maar het kan ook andersom.
Gewijzigd op 11/12/2005 16:27:00 door Knorfski
 
Knorfski

Knorfski

11/12/2005 16:25:00
Quote Anchor link
@PHPerik: Er zijn niet 2 boekingen, maar heel veel.
 
Arjan Kapteijn

Arjan Kapteijn

11/12/2005 16:25:00
Quote Anchor link
Bijde? Beide bedoel je.
 
Knorfski

Knorfski

11/12/2005 16:26:00
Quote Anchor link
@Arjan Kapteijn: Dan je :P Dyslect :P, dan maak je die fouten snel :P
 
PHP erik

PHP erik

11/12/2005 16:33:00
Quote Anchor link
SELECT * FROM tabel WHERE camper=$iets AND ( (begindatum NOT BETWEEN $begin AND $eind) AND (einddatum NOT BETWEEN $begin AND $eind) )
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 20:55:00
Quote Anchor link
@ PHPerik: die is ook goed gevonden!

@ Knorfski: ik vind het altijd zo gek dat ze juist voor dyslectici zo'n moeilijk woord hebben verzonnen.
 
Knorfski

Knorfski

11/12/2005 21:00:00
Quote Anchor link
Hallo Jan! :P

Idd een moeilijk woord ;)

En PHPerik Bedankt! :D :D :D
 
Arjan Kapteijn

Arjan Kapteijn

11/12/2005 23:40:00
Quote Anchor link
Ik ben zelf ook een dyslect, en waarschijnlijk de enige phper die 90% van zijn berichten eerst door de spellingscontrole heen gooit voor het te posten. Zelfde met mijn programmeerwerk, neem ik ook gewoon wat extra tijd voor... levertje uiteindelijk ook een betere kwaliteit op.

En bedenk goed, dyslecten zijn vaak 3x beter in andere dingen ;).
Gewijzigd op 11/12/2005 23:41:00 door Arjan Kapteijn
 
Jan Koehoorn

Jan Koehoorn

11/12/2005 23:45:00
Quote Anchor link
Klopt, dyslectie en intelligentie hebben weinig met elkaar te maken. Ikzelf gooi mijn berichten niet door de spellingscontrole, overigens.
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.