webForumDet fria alternativet

Skapa ett skolschema - hur skall databasen se ut?

Webbutveckling

29 svar · 3 914 visningar · startad av Bjuris · sida 2 av 2

Frågan, av Bjuris

Jag funderar på att fixa en funktion som skall generera skolscheman, men jag vet inte hur jag skall planera databasen och dess tabeller, finns det någon son har någon ide? Förutsättning: Nytt schema varje vecka. Rumsnummer kopplat till varje tidsenhet. Schemat är individuellt.

Läs frågan i sin helhet →
Medlem sedan okt. 2007446 inlägg
#21

som jag skrev tidigare
du måste generera ett schema oavsett om du har bokningar eller inte
därför får du i den "loopen" där du skapar schemat kolla om det finns en bokning för den cell du precis skall skapa
Så när du skall skapa schemat för tex idag så hämtar du först ut alla eventuella bokningar för dagens datum till en array, sen kollar du i den om det finns en bokning som stämmer och hur lång den är samt i vilket klassrum osv.

Medlem sedan juli 20041 271 inlägg
#22

rhdf skrev:

som jag skrev tidigare
du måste generera ett schema oavsett om du har bokningar eller inte
därför får du i den "loopen" där du skapar schemat kolla om det finns en bokning för den cell du precis skall skapa
Så när du skall skapa schemat för tex idag så hämtar du först ut alla eventuella bokningar för dagens datum till en array, sen kollar du i den om det finns en bokning som stämmer och hur lång den är samt i vilket klassrum osv.

Allt det där vet jag redan hur du menar (tror jag). ;)
Men var får jag tiderna ifrån, som ska hämtas/skapas dynamiskt tillsammans med klassrummen?

Är det "bara" att köra med php:s inbyggda tidsfunktion?
Återigen, så förstår jag inte logiken riktigt. :r

Medlem sedan okt. 2007446 inlägg
#23

tiderna du skriver ut i schemat har ju egentligen inget att göra med lektionernas tider, mer än att man använder dem för att jämföra med så rätt lektion hamnar på rätt "rad"

och ja det är php:s inbyggda tidsfunktioner du skall använda. Testa att skapa en loop som skriver ut 10 tider med ett intervall på 30 min

Doch verkar inte php ha nån inbyggd "dateAdd" eller är jag ute och cyklar 3-hjuling nu

Medlem sedan juli 20041 271 inlägg
#24

rhdf skrev:

tiderna du skriver ut i schemat har ju egentligen inget att göra med lektionernas tider, mer än att man använder dem för att jämföra med så rätt lektion hamnar på rätt "rad"

och ja det är php:s inbyggda tidsfunktioner du skall använda

Precis... då är jag med. *pust*

Jag återkommer troligtvis med fler frågor lite senare. :r

Medlem sedan juli 20041 271 inlägg
#25

rhdf skrev:

Doch verkar inte php ha nån inbyggd "dateAdd" eller är jag ute och cyklar 3-hjuling nu

Jodå, det finns.
http://se.php.net/manual/en/function.date-add.php

Men hur tänker du nu? :q :r

Medlem sedan okt. 2007446 inlägg
#26

troligtvis tänker jag rätt, men du förstår inte min tankegång ;)
så vi sammanfattar väl problemställningen lite snabbt
Du skall skriva ut en tabell som innehåller tider från tex 07:00-17:00
oavsett om det finns några inbokade lektioner eller inte.

för att göra detta så är det ju lämpligt att skapa denna tabell dynamiskt
dvs en tabellrad/varv i loopen och för varje varv så stegar man upp tiden

Har du detta statiskt kodat så blir det ju aningen knepigt att markera en lektion såvida du inte tänker göra det med javascript

Så lite pseudokod IGEN ;)

Tid=07:00 
//Loopa ut tabellrader
for i=1 to 10{
 <tr>
<td>tid</td>
</tr>
tid=tid+30 min
}

för varje rad du loopar ut måste du ju kolla om det finns någon inbokad lektion för just den tiden, finns det det så skriver du ut den informationen, annar så lämnar du cellen tom

Medlem sedan juli 20041 271 inlägg
#27

Klart det blir "knepigt" om tiderna ska förbli statiskt kodade, (men det ska de inte). ;)
Nu undrar jag bara på vilket sätt jag ska loopa ut alla tider.

Igen... schemat ska visa alla tider (med 30 min. intervall), oavsett om det finns bokningar eller inte.
Jag vet (tror jag) hur jag hämtar och visar alla bokningar, men inte hur jag ska loopa ut alla tider om det INTE finns bokningar.

P.s. Är oerhört tacksam för din hjälp såhär långt.

Medlem sedan okt. 2007446 inlägg
#28

åter igen, du måste loopa ut alla tider oavsett om det finns bokningar eller inte

så du skall mao INTE bygga utifrån vilka bokningar som finns och sen fylla på med "tomluckor" utan det är "tvärtom" du måste jobba, dvs skriva ut alla celler och göra en kontroll om just den cellen har nån bokning eller inte.

Så för att komma vidare så måste du altså först lyckas med befriften att skriva ut en lista med tider med start på 07:00, skall man vara helt petnoga så är det egentligen en lista med datum+ tid du skall ha, även om du bara sedan visar tiden. Datumet kan ju vara högst användbart att skicka med som parameter till formuläret när du sen skall lägga in nya bokningar

Medlem sedan juli 20041 271 inlägg
#29

Jag är medveten om detta, syftade mest på HUR jag loopar ut alla tider på bästa/enklaste sättet. :r

Medlem sedan okt. 2007446 inlägg
#30

precis som jag skrev ;)
ta en starttid tex 2009-03-21 07:00:00
loopa tex 10 ggr
för varje varv i loopen så skriver du ut tiden samt lägger på 30 min
hur den EXAKTA koden ser ut i PHP vet jag inte eftersom jag är kass på just PHP, men algoritmen är ju samma oavsett språk

266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)