Qwseyvnd Skrevet 23. juni 2010 Del Skrevet 23. juni 2010 Jeg har et innleveringsoppgave som må gjøres: I et lokalt idrettslag ønsker skøyteløperne seg et system som kan brukes til å registrere rundetider for treningsøkter. Man tenker seg et system med en enkel webside på en bærbar pc, hvor treneren kan registrere rundetider fortløpende for en utøver på isen. Du skal lage en løsning for dette ved å skrive to skript som til sammen skal kunne brukes til å registrere rundetider for en utøver (person) ved en treningsøkt. Det første skriptet skal brukes til å taste inn •navn på utøveren (personnavn) •dato for treningsøkten •klokkeslettet treningsøkten starter Det andre skriptet skal brukes til å taste inn rundetider for treningsøkten. Dette skriptet må kjøres på nytt for hver ny rundetid som skal registreres. Skriptet for rundetider skal fungere på følgende måte: •For hver ny runde skal utøverens navn og rundenummeret komme opp automatisk. Personnavnet må allerede være tastet inn ved hjelp av det første skriptet, mens rundenummeret skal vises automatisk og øke med 1 for hver runde som registreres. •Ved siden av det nye rundenummeret skal treneren kunne taste inn rundetiden som flyt-tall. •Når rundetiden er tastet inn skal treneren trykke 'submit query' og websiden skal da oppdateres med en liste over alle runder som er registrert siden treningsøkten startet. •Websiden skal også vise utøverens navn og dato/klokkeslett for treningsøkten, samt beregne summen og gjennomsnittet av alle rundetidene for treningsøkten. Jeg har boken "PHP, A beginners guide" skrevet av Vikram Vaswani. Jeg kan litt HTML fra før. Må je gha i++ med, isset, $_POST, litt matematikk ? Lenke til kommentar
TheRealL Skrevet 23. juni 2010 Del Skrevet 23. juni 2010 Mkay, du skriver hvem bøker du har, men ingenting om hvor bra erfaring du har med PHP. For meg og skape et slikt system er relativt enkelt. Det jeg hadde gjort er først og fremst dette: (1) Planlegge Du kan aldri planlegge nok! Det har jeg funnet ut feil vei.... For og være ærlig så er ikke beskrivelsen din helt perfekt. Jeg forstår at du skal skape et system for et idrettslag, hvorav de skal kunne registrere de forskjellige personene, treningene og rundetidene. Den måten du beskriver det på, veel, jeg liker den egentlig ikke. Hvis du må gjøre det slik på grunn av en skole oppgave eller lignende så er det vel og greit, men husk at det er ofte positivt og tenke utenfor boksen Her er åssen jeg ville gjort det: Jeg ville delt hele systemet i 3 deler. 1. Registrering av "elev" 2. Registrering av trening 3. Registrering av rundetider La oss ta en ting om gangen, skal vi? 1. Registering av elev: Grunnet mangel på bedre ord så bruker jeg elev, anyways. Her lager vi et simpelt system som enten legger til informasjon i en database, eller oppdaterer den. Har du ingen erfaring med databaser så skal jeg gi deg noen pointers, men jeg antar at du har det. Her har du 3 sider. Du har en side som lister alle "elevene", en hvor du kan legge til en ny elev og en hvor du kan oppdatere en elev. (Sletting teller ikke, da dette gjøres med PHP også bare redirecter du til "Overview" av elever.) 2. Registering av trening: Her registerer du de som har vært med på en trening. Her bruker du også databaser, og gjerne en Array. Feks så kan oppsettet være slik: Table: treninger --------------------------------- ID: (11)int, auto_increment, primary key Dato: date Deltakere: text I dato så plasserer vi datoen ved hjelp av ISO format. (YYYY-MM-DD) I deltagere så plasserer vi en serialized Array med alle deltagere. Design messig så har du en side for og lage ny trening og velge deltagere, en side hvor du har en liste med alle treningene også en "trenings overview" hvor du ser treningsdatoen, deltagere og gjennomsnittlige rundetider feks. I en tabell. 3. Registrering av rundetid: Etter du har registert en trening, så skal du kunne registere disse rundetidene. Disse plasseres da også i en database selvfølgelig, sånn at de er lett tilgjenglige. Disse burde registeres i ISO 8601 format, som er HH:MM:SS men siden jeg antar at rundetidene er under en time, så holder det med og registere MM:SS også bare legger du til 00: forran. ( $rundetid = "00:" . $registertRundetid; ) Tabel oppsettet ditt burde være noe ala dette: Tabel: Rundetid ------------------------------------------------ ID: (11)int, auto_increment, primary key deltagerID: (11)int treningID: (11)int rundetid: (255)varchar Deltager ID er ID fra "elev" tabellen. Trening ID er ID fra trenings tabellen. rundetiden er den som treneren skriver in. Jeg er ikke helt sikker på om MySQL har noen TIME funksjon, men hvis dne har det så bruker du det. -------------------------------------------------------------------------------------------------------------------- Hva matta angår så er ikke det allverdens. Du bare kombinerer noen funksjoner. http://snipplr.com/view/16089/convert-hhmmss-to-seconds/ ^ Da får du det i sekunder Så med sekunder så er det bare og dele det på antall rundetider registrert, noe som du kan få fra mysql_num_rows() Så er det bare og bruke outputten du får der, som da vil være i sekunder og revesere den tilbake til hh:mm:ss http://snipplr.com/view/4688/convert-seconds-to-hhmmss/ ---------------------------------------------------------------------------------------------------------------------- Sånn, det burde gi deg en pekepin på hva du må gjøre. Bare og spør om du har noen videre spørsmål 1 Lenke til kommentar
Qwseyvnd Skrevet 23. juni 2010 Forfatter Del Skrevet 23. juni 2010 (endret) Det var ikke jeg som skrev det, men NKI som gjorde det. Altså, jeg må bruke Array, isset, i++, løkker ? Endret 23. juni 2010 av Qwseyvnd Lenke til kommentar
TheRealL Skrevet 23. juni 2010 Del Skrevet 23. juni 2010 Det var ikke jeg som skrev det, men NKI som gjorde det. Altså, jeg må bruke Array, isset, i++, løkker ? NITH, Første året? Blant annet, ja. Altså, det jeg vet du vil få bruk for er: Array Serialize Unserialize mysql_connect, mysql_select_db, mysql_query, mysql_fetch_array, mysql_num_rows isset $_POST og $_GET Switch / If Else Serialize / Unserialize for og legge alle deltagerne i en Array som du kan sende i DB. $i++; og løkker/while er vel så som så. Altså, $i++ får du ikke bruk for i dette prosjektet, eller, du kan bruke det, men det er smartere og bruke foreach eller while. [i]while($row = mysql_fetch_array($query)) { }[/i] feks. Switch bruker du for og få den standard index.php?action=et eller annet. Da bruker du switch($_GET["action"]) { case "ny_bruker": funksjon(); break; case "endre_bruker": nyFunksjon(); break; case "slett_bruker": enAnnenFunksjon(); break; } Hvis du er en person som lærerer av og lese kildekode, så burde du studere Raid Planners til feks WoW. De har noen lignende features for hva du planlegger og gjøre Husk at, som en programmør så finnes det 100 løsninger til et problem, du må finne den som er riktig for deg. Lenke til kommentar
Qwseyvnd Skrevet 24. juni 2010 Forfatter Del Skrevet 24. juni 2010 Hmm...er det enklere å bruke += variablen for å legge til rundetider med flyttall mens andre står som før med do og while loop ??? Lenke til kommentar
TheRealL Skrevet 24. juni 2010 Del Skrevet 24. juni 2010 Hva som er enkelst for deg er nødvendigvis ikke hva som er enklest for meg Det jeg prøver og si er at en hver person har forskjellig måte og kode på, du må finne din. Nå kan jeg ikke akkurat si jeg forsto hva du mente med "flyttal" og "do og while loop". Presenter et eksempel så skal jeg gi deg et bedre svar Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå