13. december 2003 - 02:32Der er
13 kommentarer og 1 løsning
Skema over reservationer
Hejsa...
Jeg har et script, der kører nogle løkker, som får genereret følgende:
En tabel med 21 kolonner og 9 rækker.
Jeg har nu gennem et stykke tid haft problemer med udtrækning af data fra en database. Hvis der ikke står noget i databasen, skal der skrives "Fri" til feltet. Ellers skal dataene udskrives til feltet.
Mit problem er egentlig ikke så stort. Jeg vil bare gerne vide, om jeg skal oprette forbindelser til hvert enkelt felt i min tabel (ca. 160 <TD>) eller om jeg kan nøjes med at lave for hver række (8)?
hmm, jeg er desværre ikke helt med på hvad du mener med forbindelser?
hvis du snakker forbindelser til databasen, så burde det da ikke være nødvendigt. Der burde du da kunne hive det hele ud på 1 gang.. eller i hvert fald pr. række. At lave 160 kald til en db på en side... er ikke ligefrem optimalt jo! :D
Du kan næsten med garanti nøjes med mindre. Jeg kender ikke lige din db-opbygning, men hvis ikke du kan nøjes med mindre, så må vi jo ændre i db-opbygning. Ingen side kan være tjent med 160 kald for at lave et skema.
Jeg kunne forstille mig, at du kunne hente det hele i et kald, og så løbe det recordset igennem række for række. Eller som mindste mål, så lave et kald pr. række.
Skal måske bruge lidt mere info, hvis jeg skal hjælpe dig konkret.
jeg tænkte på, om det ville hjælpe at omstrukturere min database således at det er delt op i lokaler. Altså sådan at jeg ikke har en samlet tabel (Reservationer), men 4 tabeller (Lokale3, Lokale4, Lokale6, Lokale11)? Ville det kunne nedsætte brugen af kald til databasen?
Mine tanker omkring dit problem har mundet ud i dette. Jeg ville nok gøre det på den måde, at jeg ville lave følgende felter i databasen: lokale, dato, lektion og så hente alt dit data ud for hele ugen 1 gang i starten af scriptet.
Så ville jeg gennemløbe det recordset og så oprette nogle dynamiske variabler svarende til de lektioner hvor der er optaget. Når du så i dit script laver skemaet, så kan du ved hvert felt teste på en variabel istedet for at lave kald til databasen. Dette vil spare dig for en masse belastning den vej.
Det kunne evt. se ud på denne måde:
sql = "Select * from reservation where dato = ... " & uge set r = conn.execute(sql) if not r.eof then do dyn-var- & r("dato") & - & r("lokale") & - & r("lektion") = "optaget" r.movenext loop until r.eof end if
Jeg er ikke 100% sikker på om du kan gøre det med en alm. variabel, men ellers kan du oprette dem som session-variabler, og så kan du 100%. Dette ville se sådan her ud: session("dyn-var-" & r("dato") & "-" & r("lokale") & "-" & r("lektion") = "optaget"
i dit script kan du så lave noget test i hver celle der ligner:
if session("dyn-var-" & din_dato & "-" & lokale & "-" & T & "") = "optaget" then response.write("Optaget") else response.write("Fri") end if
Håber du kan bruge mine tanker til noget, og hvis du ikke kan finde ud af det, så må du skrive, så kan jeg lave et lille eksempel.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.