Hur är det bäst att göra detta för att lagra i en databas?
Det ska vara fasta tider (10 st,08-18.00) med anv.namn & övrig info.
Jag har redan en kalender som skickar med år/mån/dag till denna sida.
Ska jag använda samma tabell eller ska jag skapa en ny?
och om jag vill presentera tabellen i samma format som nu, hur ska jag lista alla klockslag men bara skriva ut namn och kommentarer där det är bokat?
For timme = 1 To 24
'Ändra ex. 3:45 till 03:45.
If timme < 10 Then
modTimme = "0" & timme & ":00"
Else
modTimme = timme & ":00"
End If
' Skriv ut.
Response.Write "Tid: " & modTimme
If rs("starttid") = modTimme Then
Response.Write "Då ska " & rs("namn") & " köra ungarna till dagis."
End If
Next
När användaren ska boka en lokal så ser det ut såhär:
Tid|namn|info
----------------------------------
08.00-09.00|Marie|Här skrivs info|
09.00-10.00|Olle.|...............|
10.00-11.00|.....|...............|
----------------------------------
osv.
Sidan ska se likadan ut om någon bokat eller inte.
Om jag listar en massa fält utan data blir det fel, och jag kan ju inte kolla varje rad med if-satser.
Varför kan du inte köra If-satser och kolla ifall de inte innehåller något värde? Du kör ju bara igenom dem när du loopar värdena från databasen.
Ex.
<% tid = RecSet("tid")
namn = RecSet("namn")
ovrigt = RecSet("ovrigt")
Response.Write "<table>"
Do until RecSet.EOF
Response.Write "<tr><td>"&tid&"</td><td>"
If Not namn = "" Then
Response.Write namn
End If
Response.Write "</td><td>"
If Not ovrigt = "" Then
Response.Write ovrigt
End If
Response.Write "</td></tr>"
RecSet.MoveNext
Loop
RecSet.Close
Set RecSet = Nothing
Response.Write "</table>"
%>
Jag vill att alla tider ska listas oavsett när man bokat (fasta tider 08.00-18.00) + att där det är bokat ska skrivas in bredvid rätt tid.
Tabell1
-------
sTimeId - räknare
sTime - alla tider ex. 08.00-09.00
Tabell2
-------
sBookId - räknare
sName - Namn på den som bokat
sInfo - Övrig info
sTimes - Id'et från sTime (Tabell1)
sDate - Vilket datum bokningen är
Alltså såhär:
----------------------------------------------|
|.....Tid.....|.....Namn.....|.....Övrigt.....|
|.08.00-09.00.|.....Olle.....|................|
|.09.00-10.00.|.....Anna.....|................|
|.10.00-11.00.|..............|................|
osv.
Så tiden mellan 10.00-11.00 är inte bokad, men listas iallafall.
Hur göra?
Den fungerar nästan...
Nu visar den de två bokningarna på alla ställen.
Om jag använder koll efter datumet (som jag skall göra) visas bara själva bokningarna och inte hela boknings-schemat, med denna SQL-sats:
SQL = "Select tid.sTime, bok.sName, bok.sInfo, bok.sDate FROM tblTime tid LEFT JOIN tblBooking bok ON tid.sTimeId = bok.sTimes WHERE Datepart(year, sDate) = " & iYear & " AND Datepart(month, sDate) = " & iMonth & " AND Datepart(day, sDate) = " & iDay & ""
Hur ska jag få hela boknings-schemat att listas samtidigt som bokningarna som är gjorda hamnar på rätt ställe.
Harback: Din SQL-Sats var precis vad jag ville ha,tack! men jag vill att den ska vara beroende av datumet den är bokad.
Förstår nån vad jag är ute efter?
SQL = "Select tid.sTime, bok.sName, bok.sInfo, bok.sDate FROM tblTime tid LEFT JOIN tblBooking bok ON tid.sTimeId = bok.sTimes WHERE Datepart(year, sDate) = " & iYear & " AND Datepart(month, sDate) = " & iMonth & " AND Datepart(day, sDate) = " & iDay & " ORDER BY sDate ASC"
cya,
PatrikB
------------------
*så kan det gå när inte haspen är på*
Hmmm...det var konstigt eftersom när man använder LEFT JOIN ska den oberoende av den andra tabellen ta med alla tider från tblTime och sedan ta med dom som stämmer från tblBooking. Det är det som är finessen med LEFT JOIN.
Vad säger ni andra? Visa hela din kod, hur du skriver ut infon etc.
------------------
MVH
Harback
[Redigerat av Harback den 08 aug 2001]
131 ms totalt · 3 externa anrop · v20260731065814-full.55e59744