Oprettet tor. d. 25. januar 2007 kl. 10:59:51

zentral
zentral (8.950 point. Point ude: 3.100)
www.zentral.dk

booking system

hej

jeg er ved at lave en projekt opgave hvor jeg ska lave et booking system til en frisør.

man ska kunne se en masse tidspunkter pr. dag, som kunden kan vælge mellem, og når en tid er taget, så vises den naturligvis ikke længere.

nogen som har en ide til hvordan man ska lave det, for jeg er virkelig stået fast.

jeg har lavet en db med en masse datoer og tidspunkter i men når jeg viser dem så spytter den dem nemlig ud i en lang rækker, altså  fx. 10 udtræk på sammen dato med tidspunkter, og så 10 nedenunder ingen med dagen efter osv...

det skulle jo gerne være sådan at den viser alle tidspunkter pr. dag, og så kan man skifte dagen og tidspunkterne vises for den dag.

nogen som forstår min plan ???

Skrevet tor. d. 25. januar 2007 kl. 11:09:31| #1

fennec
fennec (118.176 point)
Hvordan er intervallerne på bookingerne? Bestiller man i et fast interval (f.eks 30 min), eller er det op til brugeren selv at bestemme en fra/til tid (såfrem tiden er ledig).

Tænker f.eks at en almindelig klipning ikke tager nær så lang tid som en krølning/farvening.

Skrevet tor. d. 25. januar 2007 kl. 11:30:31| #2

zentral
zentral (8.950 point)
www.zentral.dk
ja det er faste tidspunkter eftersom det bare er et projekt. men 30 min, fra kl 10 til 15

Skrevet tor. d. 25. januar 2007 kl. 11:52:30| #3

fennec
fennec (118.176 point)
Først del er at lave en database med en tabel:

[bookinger]
id: autonummer
tid: dato & klokkeslet
navn: tekst
adr: tekst
..Evt andre oplysninger..

Skrevet tor. d. 25. januar 2007 kl. 12:15:09| #4

zentral
zentral (8.950 point)
www.zentral.dk
der er i databasen
id.
strDato.
strKlok.
strReseveret.
strBookingID

Skrevet tor. d. 25. januar 2007 kl. 12:17:16| #5

zentral
zentral (8.950 point)
www.zentral.dk
jeg går en fejl når jeg prøver at vise klokkeslet ved en dag.
"SELECT * FROM booking_planer where intDato = '02-02-2007'"
hvor er fejlen i den streng. tabel navnet er korrekt og sat til dato.
fejlen er "Datatyperne stemmer ikke overens i kriterieudtrykket"

Skrevet tor. d. 25. januar 2007 kl. 12:23:03| #6

fennec
fennec (118.176 point)
Hvis du bruger Access (hvad jeg kan forstille mig), skal du bruge # til datoangivelse. Bemærk også at datoformatet skal være mm-dd-yyyy:

"SELECT * FROM booking_planer where intDato = #01-31-2007#"

Skrevet tor. d. 25. januar 2007 kl. 13:01:11| #7

zentral
zentral (8.950 point)
www.zentral.dk
det virker fint, problemer er jo som du skriver at den vender datoen om, underligt når jeg udtrække den viser den dd-mm-yyyy hvordan får jeg dem så til at passe, eller ja være  ens, hvis du forstår ?

Skrevet tor. d. 25. januar 2007 kl. 13:15:03| #8

fennec
fennec (118.176 point)
Jeg er helt med, og det er et "problem" for ALLE databaser.

Når du henter data fra databasen, sender den automatisk datatypen (og meget andet) med, og derfor ved programmeringssproget, hvordan den skal opfatte data. Du kan af naturlige årsager ikke sende de informationer via en tekststreng. Formatet som datoer (og tal) bliver udskrevet i styres af session.LCID i ASP.

Det kan dog gøres, hvis du opdatere/indsætter via et recordset. Så skal man ikke bekymre sig om datoformater/talformater/tekstformater.

Problemet er ikke større end at man har 3 funktioner i ASP. En til tekstformatering (problematikken med ' tegnet), talformatering (problematikken med , og . som kommatalseperator), og sidst datoformatering (som formatere datoer til det format databasen vil have)

Skrevet tor. d. 25. januar 2007 kl. 13:31:40| #9

fennec
fennec (118.176 point)
Noget helt andet... Du nævner at du har smidt en masse datoer/klokkeslet i databasen, og det er dem der kan bookes. Er der en speciel grund til at du har gjort sådan??

Det kan sagtens laves uden alle de data, og jeg vil da klart anbefale at gøre det, da du så undgår at skulle vedligeholde de data. Hvorfor ikke bare lave et ASP script som laven en tabel:

<%
dato = dateserial(2007,1,22)
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="2">
<tr>
    <td width="40">Uge <%= datepart("ww",dato,2,2) %></td>
    <td width="30">Man</td>
    <td width="30">Tir</td>
    <td width="30">Ons</td>
    <td width="30">Tor</td>
    <td width="30">Fre</td>
</tr>
<% for f=0 to 10
    fTime = dateadd("n",30*f,dato&" 10:00") %>
<tr>
    <td><%= mid(fTime,12,5) %></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
</tr>
<% next %>
</table>

</body>
</html>

Så er det bare at tjekke hver felt om det er booket via databasen. Det kan jeg smide ind i koden på 10 min...

Skrevet tor. d. 25. januar 2007 kl. 14:01:24| #10

zentral
zentral (8.950 point)
www.zentral.dk
kæft hvor er det smart... hmm, hvis du virkelig gider kan jeg sende dig filerne det er ikke særlig mange og det er ikke specielt rodet ????

Skrevet tor. d. 25. januar 2007 kl. 14:18:58| #11

zentral
zentral (8.950 point)
www.zentral.dk
den vender stadig dataen om når jeg prøver at indsætte en dato via et recordset, hvis altså du mener via en input feldt gennem et asp script

Skrevet tor. d. 25. januar 2007 kl. 15:08:00| #12

zentral
zentral (8.950 point)
www.zentral.dk
selvom jeg har en post i databasen som hedder 01-02-2007 så skal den skrives som 02-01-2007 for at virker... noget som kan forklare det ?

Skrevet tor. d. 25. januar 2007 kl. 15:34:53| #13

fennec
fennec (118.176 point)
Har lige været til møde, hvorfor du ikke har hørt fra mig i et par timer.

Hvis du kan zippe filerne og smide et sted til download, så jeg kan hente dem, vil det være konge (jeg skriver aldrig min mailadr på forumer, så den får du ikke).

Ellers udvider jeg det tidligere script til at hente/indsætte data i en database, også kan du nok selv tilpasse det script, til det du ønsker.

Skrevet tor. d. 25. januar 2007 kl. 16:45:03| #14

zentral
zentral (8.950 point)
www.zentral.dk
tusinde tak.... www.zentral.dk/booking.zip
bruger du msn, for så må du meget gerne add mig på webmaster@zentral.dk
du sku da næsten ha dobbelt point for det her

det jeg har lavet virker sån lidt, men ikke sådan som du beskrev det og det lyder da lidt mere spændende

Skrevet fre. d. 26. januar 2007 kl. 09:43:07| #15

fennec
fennec (118.176 point)
Jeg har lavet en kode som kan ses her:
http://www.henriknygaard.dk/ (...)

Koden og databasen kan hentes her:
http://www.henriknygaard.dk/ (...)

Koden mangler bare et login script så session("userID") ikke bliver sat manuelt.

Skrevet fre. d. 26. januar 2007 kl. 12:41:33| #16

zentral
zentral (8.950 point)
www.zentral.dk
jeg mangler ord for det som du har lavet... det er bare GENIALT... jeg takker virkeligt...

Skrevet fre. d. 26. januar 2007 kl. 16:54:45| #17

zentral
zentral (8.950 point)
www.zentral.dk
det virker bare perfekt
men tiden passer ikk selvom jeg har sat session.lcid = 1030, den er 3 dageog 5 timer bagud

Skrevet lør. d. 27. januar 2007 kl. 17:46:38| #18

zentral
zentral (8.950 point)
www.zentral.dk
jeg tænkte på, hvis nu en af behandlingsformerne nu tager 2 timer i stedet for 30 min, hvordan ændre jeg det ? altså så den bare optager 4 tider istedet for en ?

Skrevet man. d. 29. januar 2007 kl. 08:28:21| #19

fennec
fennec (118.176 point)
Hvis tiden ikke passer, så er det fordi tiden på serveren ikke passer. Det har ikke noget med LCID'en at gøre. Du skal have fat i en server admin, som kanb sætte uret rigtigt.

Der er flere måder at løse 30 min/120 min problemet. Den nemmeste måde at gøre det på, som scriptet er nu, er at gøre ved indsættelse i databasen. Lav et tjek for hvilken type klipning man har valgt, og lav så et par if-sætninger:

...
if isDate(fTime) and isNumeric(session("userID")&"") and isNumeric(Request.Form("select")&"") then
  if Request.Form("select")&"" = "1" then
    '30 min booking
    set rs = conn.execute("select * from Bookinger where tid=#"& DBDateTime(fTime) &"#")
  elseif Request.Form("select")&"" = "2" then
    '30 min booking
    set rs = conn.execute("select * from Bookinger where tid=#"& DBDateTime(fTime) &"#")
  elseif Request.Form("select")&"" = "3" then
    '120 min booking
    set rs = conn.execute("select * from Bookinger where tid>=#"& DBDateTime(fTime) &"# and tid<#"& DBDateTime(dateadd("n",120,fTime)) &"#")
  elseif Request.Form("select")&"" = "4" then
    '120 min booking
    set rs = conn.execute("select * from Bookinger where tid>=#"& DBDateTime(fTime) &"# and tid<#"& DBDateTime(dateadd("n",120,fTime)) &"#")
  end if
  if rs.eof then
    conn.execute("insert into Bookinger(tid, brugerID,klipType) values(#"& DBDateTime(fTime) &"#,"& cLng(session("userID")) &","& cLng(Request.Form("select")) &")")
  else
    Response.write "Tiden er optaget."
    conn.close
    set conn = nothing
    response.end
  end if
else
...

Skrevet man. d. 29. januar 2007 kl. 08:33:12| #20

fennec
fennec (118.176 point)
Manglere lige koden til at indsætte flere booking linjer, så tiden bliver optaget:

if isDate(fTime) and isNumeric(session("userID")&"") and isNumeric(Request.Form("select")&"") then
  if Request.Form("select")&"" = "1" then
    '30 min booking
    set rs = conn.execute("select * from Bookinger where tid=#"& DBDateTime(fTime) &"#")
  elseif Request.Form("select")&"" = "2" then
    '30 min booking
    set rs = conn.execute("select * from Bookinger where tid=#"& DBDateTime(fTime) &"#")
  elseif Request.Form("select")&"" = "3" then
    '120 min booking
    set rs = conn.execute("select * from Bookinger where tid>=#"& DBDateTime(fTime) &"# and tid<#"& DBDateTime(dateadd("n",120,fTime)) &"#")
  elseif Request.Form("select")&"" = "4" then
    '120 min booking
    set rs = conn.execute("select * from Bookinger where tid>=#"& DBDateTime(fTime) &"# and tid<#"& DBDateTime(dateadd("n",120,fTime)) &"#")
  end if
  if rs.eof then
    conn.execute("insert into Bookinger(tid, brugerID,klipType) values(#"& DBDateTime(fTime) &"#,"& cLng(session("userID")) &","& cLng(Request.Form("select")) &")")
    if Request.Form("select")&"" = "3" or Request.Form("select")&"" = "4" then
      conn.execute("insert into Bookinger(tid, brugerID,klipType) values(#"& DBDateTime(dateadd("n",30,fTime)) &"#,"& cLng(session("userID")) &","& cLng(Request.Form("select")) &")")
      conn.execute("insert into Bookinger(tid, brugerID,klipType) values(#"& DBDateTime(dateadd("n",60,fTime)) &"#,"& cLng(session("userID")) &","& cLng(Request.Form("select")) &")")
      conn.execute("insert into Bookinger(tid, brugerID,klipType) values(#"& DBDateTime(dateadd("n",90,fTime)) &"#,"& cLng(session("userID")) &","& cLng(Request.Form("select")) &")")
    end if
  else
    Response.write "Tiden er optaget."
    conn.close
    set conn = nothing
    response.end
  end if
else

Den bedste løsning er dog at få en til/fra tid med i databasen, så der kun skal være en bookinglinje (i stedet for 4), men så skal vi til at ændre hele scriptet, da det skal fungere på en anden måde.

Skrevet tir. d. 30. januar 2007 kl. 22:22:48| #21

zentral
zentral (8.950 point)
www.zentral.dk
det virker bar... du kan se hvordan projektet kom til at se ud på www.zentral.dk/booking

tusinde tak for din hjælp

Skrevet tir. d. 20. marts 2007 kl. 19:39:56| #22

zentral
zentral (8.950 point)
www.zentral.dk
hej hej fennec, jeg tænkte på om du er frisk på et udbygning af systemet ?? det omhandler at man fx. ska kunne bestille 10 aftaler samme dag, og at tiden isteder skifter hver time... jeg vil give op til 500 points når det er færdigt ???

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

ASP: formular udtræk med mulighed for at rette

Oprettet den 21. maj 2012 kl. 15.09
quarkb giver 200 point for svar | Giv et svar »

Sorter biblioteker efter dato i ASP

Oprettet den 17. maj 2012 kl. 16.52
4ks giver 60 point for svar | Giv et svar »

Simpel login-funktion (web) - behov for flere logins/brugere

Oprettet den 15. maj 2012 kl. 09.54
madx giver 75 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger