Avatar billede thb Nybegynder
01. april 2010 - 15:42 Der er 6 kommentarer og
1 løsning

Kalender struktur

Hej,

Jeg sidder og skal lave en ny kalender funktion til mit site, den første jeg lavede giver ikke længere mening.

Jeg kan bare ikke helt finde ud af hvordan jeg skal opbygge det bedst.

Jeg har typer af events:

1) Et show oprettes, hvortil der bliver tilføjet x antal spille datoer ( den er lige til )

2) En enkelt event som en person opretter, vælger spillested og indtaster start tidspunkt og slut, dato og lidt info

3) Man kan oprette et tilbage vendende event, f.eks hver onsdag, eller d. 5 i hver måned.

Nogle elementer kan jeg godt hitte ud af, men kan ikke lige se hvordan jeg kan lave det hele samlet, sådan at jeg nemt f.eks. kan trække ud til forsiden hvad der sker den kommende uge.

Håber I forstår og kan komme med noget input.

Thomas
01. april 2010 - 16:41 #1
Du skal nok forklare en lille smule mere.  Lad mig lave nogle gaet - saa kan du bekraefte eller rette. 

a.  Din 'site' er en php hjemmeside med (mindst) to funktioner:  (1) personer kan oprette events ved at fylde oplysninger ind i en html form, og (2) administratoren kan formattere en kalender med events ved i en anden html form at angive start- og slutdato for kalenderen.

b.  Du gemmer oplysningerne om events i en mysql database.

c.  For hver spilledag for hver event skal der fastsaettes et spillested, et starttidspunkt, og enten et sluttidspunkt eller en varighed.

Lad mig faa en tilbagemelding.  Saa skal jeg proeve at komme med nogle forslag.
Avatar billede thb Nybegynder
01. april 2010 - 16:54 #2
a) Selve indtastningen har jeg ikke taget fat i endnu, men det skulle gerne ende med at sites brugere kan oprette events, eller hele shows.

b) Jeps, php kode, mysql database

c) Ved ikke helt hvad du mener her, men det skal gerne være sådan at bagefter nemt kan trække ud, f.eks. hvad sker der den kommende uge eller den kommende måned.

Jeg er lidt ude efter hvordan man håndtere det med tilbage vendende arrangementer, sammen med andre typer arrangementer.
01. april 2010 - 17:55 #3
Jeg skal til at afsted - her er et par indledende overvejelser som jeg skal arbejde videre med senere paa aftenen eller i morgen tidlig.  Maaske har du i mellemtiden kommentarer.

Men jeg forestiller mig at du for de ikke-tilbagevendende events har de foelgende tabeller:

EVENT
id, navn, ansvarlige, varighed (i minutter), kommentarer

SPILLESTED
id, navn, adresse, kommentarer

FORESTILLING
id, event_id, spillested_id, start.  (start er en datetime med datoen og starttidspunktet for forestillingen.  Ved at laegge eventens varighed til kommer man til sluttidspunktet.

Brugeren der indtaster udfylder i en html form felter for navn, ansvarlig, varighed, kommentar (yderligee oplysninger), og for hver forestilling (hvad enten det er en enkel event eller et show over flere spilledage) dato og starttidspunkt.  Brugeren trykker saa paa en submit knap der saetter php kode i gang der indsaetter oplysningerne i i mysql tabellerne.

Administratoren der vil lave en kalender indfylder, i en anden html form, kalenderens startdag og slutdag ud og trykker paa en submitknap der starter php kode der fra mysql tabellerne traekker de events ud for det paagaeldende tidsrum, og derefter php kode der formatterer en kalender og fylder eventsene ind.

Og saa de tilbagevendende events.  Det skal nok vaere saaledes at der laves en "business-rule" tabel med for eksempel en type "onsdag kl. 20.00," en type "femtende kl. 19,30" og saa fremdeles.  Efter behov oprettes nye typer.  Naar saa der kommer en ny tilbagevendende event fyldes Event tabellen ud.  I endnu en tabel, EVENT_TILBAGEVEND med to felter, event_id OG businessrule_id, kobles eventen saa til en business rule.  Naar administratoren saa vil oprette en kalender for et tidsrum mellem to dage saa fyres der foerst php kode af der for hver bestaaende EVENT_TIBAGEVEND kombination fylder FORESTILLING tabellen ud (fylder eventen ind for hver onsdag og hver den femtende i perioden) og derefter traekker oplysningerne ud fra tabellerne og formatterer tabellen.

Med andere ord, de tilbagevendende events fyldes foerst i FORESTILLING tabellen naar der skal laves en ny kalender.

Jeg haaber det er forstaaeligt.  Det er skrevet lidt i hast.
Avatar billede thb Nybegynder
01. april 2010 - 23:39 #4
Det er meget muligt noget som jeg kan bruge, men tror jeg bliver nød til at prøve at lave det og se hvordan jeg kan arbejde med det.

Dog fik jeg ikke så meget ud af det med tilbage vendende arrangementer. Men tænker lidt at det måske også er en lige gyldig funktion forstået sådan at det kan godt være at et spillested har et tilbage vendende event, men der vil ofte være forskellig info til hver gang. Så måske skal folk bare oprette deres forskellige arrangementer med samme spillested og så forskellig dato og info.
02. april 2010 - 09:44 #5
Jeg har vist rodet mig ind i noget der er mere kompliceret end jeg foerst troede.  Det hjaelper at du nu ser bort fra kravet om tilbagevendende arrangementer.  Men der er naturligvis ogsaa elementer saasom det foelgende:  Hvis du vil vise spillestedet i kalenderen skal du bevare den i databasen og eftersom du nok vil bruge nogle spillesteder igen og igen boer spillestederne bevares i en saerskilt tabel, som jeg har vist ovenfor.  Men saa maa det ogsaa vaere saaledes at naar en bruger vil oprette en ny event maa han skulle vide hvilke spillesteder der allerede staar i databasen saaledes at han enten kan vaelge et allerede oprettet spillested eller oprette et nyt.

Saa jeg har arbejdet med hvordan din php hjemmeside kan vise en liste af bestaaende spillesteder.  Det fik jeg loest og jeg viser dig loesningen nedenfor (du skulle vaere i stand til at afproeve det hvis du kopierer koden.)  Men saa er jeg ikke kommet videre, og det vil tage mere tid end jeg har lige nu, saa jeg maa slutte.  (Men jeg proevede, mit indlaeg var ikke ment som en aprilsnar.)

Jeg laegger stor vaegt paa at faa spoergsmaal lukkede.  Hvis ikke du faar flere indlaeg her haaber jeg derfor at du vil lukke.  Eftersom jeg ikke var i stand til at hjaelpe maa du nok selv oprette et svar og give dig selv points.

Her er min kode til at faa en liste over bestaaende spillesteder:

<?
$link = mysql_connect ('christianjorgensen.be.mysql', 'christianjoygen', 'dnyBKKbe') or die(mysql_erorr());
mysql_select_db('christianjoygen') or die('Could not select database');
?>
<form action="<? print $_SERVER["PHP_SELF"];?>" method="POST">
Eksisterende spillesteder: <br/>
<select name='area'>
<?
$result = mysql_query("SELECT sted FROM thb_sted");
while($row = mysql_fetch_array($result))
echo "<option value=" . $row['sted'] . ">" . $row['sted'] . "</option>";
?>
</select><br/>
</form>
<?
mysql_close($link); 
?>
Avatar billede thb Nybegynder
02. april 2010 - 12:03 #6
hehe, det er fair nok. Som sagt er spørgsmålet oprettet i database sektionen, da jeg ikke har nogle problemer med selve koden, men ikke lige kunne overskue opbygningen.

Jeg synes du skal smide et svar for dit forsøg. :)

Thomas
02. april 2010 - 12:04 #7
Ok, her er mit svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester