Christian_ Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 (endret) jeg har så vidt begynt å lære meg php og har tenkt til å lage et script som regner ut poeng du får på tider i svømming.. formelen er slik: 1000/(verdensrekord tid omregnet til 100-deler)opphøyd i 3 potens/oppnadd tid i 100-deler jeg tenkte jeg skulle lage en variabel som inneholdt verdensrekorden ommregnet til 100-deler <?php $wr = 2110; //verdensrekorden på 50m fri ommgjort til 100-deler $minutter = "?"; //tekstboks som man skal skrive in i(vet ikke hvordan jeg lager det så noen må hjelpe meg med det) $sekunder = "?"; //tekstboks som man skal skrive in i(vet ikke hvordan jeg lager det så noen må hjelpe meg med det) $tiendeler = "?"; //tekstboks som man skal skrive in i(vet ikke hvordan jeg lager det så noen må hjelpe meg med det) $minuttregner = ($minutter*60*100); $sekundregner = ($sekunder*100); $oppnadregner = ($minuttregner+$sekundregner*$tiendeler); $oppnadd = $oppnadregner; $forste = (1000/$wr); $andre = ($forste*$forste*$forste); $tredje = ($andre/$oppnadd); $resultat = $tredje; echo "du har fått $resutat poeng"; ?> er jeg helt på jordet? Endret 23. desember 2004 av chs89 Lenke til kommentar
toss Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 formelen ser riktig ut for meg, uten at jeg er en mester i php.. men for å få frem tekstbokser bruker du forms.. så bruker du $_POST[name] for å få frem resultatet i skriptet.. Lenke til kommentar
jorgis Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 htmlside.html: <html> <head> </head> <body> <form method="post" action="phpside.php"> <fieldset> <legend>Svømmegreie</legend> <input type="text" name="minutter" value="Minutter" /><br /> <input type="text" name="sekunder" value="Sekunder" /><br /> <input type="text" name="tiendedeler" value="Tiendedeler" /><br /> <input type="submit" value="Kjør!" /> </fieldset> </form> </body> </html> phpside.php: <?php $wr = 2110; //verdensrekorden på 50m fri ommgjort til 100-deler $minutter = $_POST['minutter']; //tekstboks som man skal skrive in i $sekunder = $_POST['sekunder']; //tekstboks som man skal skrive in $tiendeler = $_POST['tiendedeler']; //tekstboks som man skal skrive in $minuttregner = ($minutter * 60 * 100); $sekundregner = ($sekunder * 100); $oppnadregner = ($minuttregner + $sekundregner * $tiendeler); $oppnadd = $oppnadregner; $forste = (1000/$wr); $andre = ($forste * $forste * $forste); $tredje = ($andre/$oppnadd); $resultat = $tredje; echo "du har fått $resutat poeng"; ?> Det skal virke hvis det du har fra før fungerer. Har ikke gått nøye gjennom koden din, men det ser OK ut. Bare spør hvis noe er gale. Lenke til kommentar
Christian_ Skrevet 23. desember 2004 Forfatter Del Skrevet 23. desember 2004 får bare opp du har fått poeng link hva er feil? Lenke til kommentar
jorgis Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 Prøv å bytt ut echo "du har fåt blbalbala" med følgende: echo "<pre>"; var_dump($resultat); echo "</pre>"; Så får du en grei oversikt over hva variabelen $resultat inneholder. Jeg har ikke tid til å gå gjennom scriptet ditt etter hva som gjør at $resultat muligens er tom, men du kan vel gå gjennom det selv og se om noe er feilstavet, om du gjør noe galt noen steder osv. Lenke til kommentar
Christian_ Skrevet 23. desember 2004 Forfatter Del Skrevet 23. desember 2004 hehe... ikke helt riktig det heller nei float(1.215202146381E-6) prøv det selv http://home.no.net/chs89/mail/nyside.php Lenke til kommentar
Christian_ Skrevet 23. desember 2004 Forfatter Del Skrevet 23. desember 2004 (endret) hmm.. lurer på om det ikke er noe galt med formelen.... klarer noen å se om det er noen feil? Link til side med formel EDIT: sorry bump Endret 23. desember 2004 av chs89 Lenke til kommentar
toss Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 (endret) tror du har missforstått formelen på NSF sine sider.. skulle vært noe slikt tror jeg: <?php $wr = 2110; //verdensrekorden på 50m fri ommgjort til 100-deler $minutter = $_POST['minutter']; //tekstboks som man skal skrive in i $sekunder = $_POST['sekunder']; //tekstboks som man skal skrive in $tiendeler = $_POST['tiendedeler']; //tekstboks som man skal skrive in $minuttregner = ($minutter * 60 * 100); $sekundregner = ($sekunder * 100); $oppnadregner = ($minuttregner + $sekundregner + $tiendeler); $oppnadd = $oppnadregner; $forste = ($wr/$oppnadd); $andre = ($forste * $forste * $forste); $tredje = ($andre * 1000); echo "du har fått $tredje poeng"; ?> formelen var feil, og jeg fikk frem innholdet i variabelen ved å bare skrive ut $tredje i stedet for å gjøre det om til en ny variabel.. den ligger her EDIT: verdensrekorden på 50m fri omregnet til hundredeler blir forresten 2129.. og så må tallene rundes ned, men jeg vet ikke hvordan man gjør det.. Endret 23. desember 2004 av toss Lenke til kommentar
Christian_ Skrevet 23. desember 2004 Forfatter Del Skrevet 23. desember 2004 (endret) tror du har missforstått formelen på NSF sine sider..skulle vært noe slikt tror jeg: <?php $wr = 2110; //verdensrekorden på 50m fri ommgjort til 100-deler $minutter = $_POST['minutter']; //tekstboks som man skal skrive in i $sekunder = $_POST['sekunder']; //tekstboks som man skal skrive in $tiendeler = $_POST['tiendedeler']; //tekstboks som man skal skrive in $minuttregner = ($minutter * 60 * 100); $sekundregner = ($sekunder * 100); $oppnadregner = ($minuttregner + $sekundregner + $tiendeler); $oppnadd = $oppnadregner; $forste = ($wr/$oppnadd); $andre = ($forste * $forste * $forste); $tredje = ($andre * 1000); echo "du har fått $tredje poeng"; ?> formelen var feil, og jeg fikk frem innholdet i variabelen ved å bare skrive ut $tredje i stedet for å gjøre det om til en ny variabel.. den ligger her takk...! men vi får ikke opp samme svar..jeg skal regne ut tiden: minutter: 0 sekunder: 28 tiendeler: 67 og får opp 427.93053024781 poeng men jeg får opp 398.62477494123 poeng i ditt script..? så på kobben.no siden og fant ut at 409 var riktig det er vel ditt som er nærmest.. er det noen forskjell på scriptet du la ut og det som du bruker på siden? EDIT: fikk det til:) men jeg har et spørsmål til mens det enda er brukere som ser på topicen... jeg vil ha en dripdown meny som man kan velge øvelser på.... så når man velger en øvelse så endrer $wr seg til den tiden som øvelsen har.. hvordan kan jeg gjøre det? Endret 23. desember 2004 av chs89 Lenke til kommentar
toss Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 (endret) se edit i forrige post.. kan være de to tingen som gjør at tallene blir feil.. EDIT: for å få droppdown menu må du bruke feks: <select> <option value="first option">Option 1</option> <option value="second option">Option 2</option> <option value="third option">Option 3</option> </select> les mer her: http://www.htmldog.com/guides/htmlbeginner/forms/ for sent på kvelden til at jeg gidder å finne ut mer om hvordan man kaller frem disse verdiene.. god natt Endret 23. desember 2004 av toss Lenke til kommentar
Christian_ Skrevet 23. desember 2004 Forfatter Del Skrevet 23. desember 2004 (endret) der ja!! tusen takk! men jeg har et spørsmål til mens det enda er brukere som ser på topicen...jeg vil ha en dripdown meny som man kan velge øvelser på.... så når man velger en øvelse så endrer $wr seg til den tiden som øvelsen har.. hvordan kan jeg gjøre det? og hvordan kan jeg runde svaret helt ned til null desimaler(runde nedover) takker for alle svar Endret 23. desember 2004 av chs89 Lenke til kommentar
jorgis Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 Husk at PHP har en hjemmeside med en søkbar online-manual. Der står det dokumentasjon for mer eller mindre samtlige funksjoner i PHP. Hadde du stukket innom der og søkt, hadde du funnet ut at funksjonen round() er ideell til ditt formål. Les manualsiden, og tenk selv. Det lønner seg nemlig alltid. Lenke til kommentar
Christian_ Skrevet 24. desember 2004 Forfatter Del Skrevet 24. desember 2004 takk! men hvordan leter dere dere fram i manualen? Lenke til kommentar
LoS Skrevet 24. desember 2004 Del Skrevet 24. desember 2004 Du ta ett norsk ord, gjør det om til engelsk, og søker. Syns det er en utrolig bra søkefunksjon på php.net, du får fram ting som kan være det du leter etter osv. Forøvrig kan man kanskje bruke floor() istedenfor round() hvis man skal runde ned. Lenke til kommentar
Christian_ Skrevet 24. desember 2004 Forfatter Del Skrevet 24. desember 2004 ja.. floor funket mye bedre! men er det ingen som kan hjelpe meg med dropdownmenyen? Lenke til kommentar
Christian_ Skrevet 25. desember 2004 Forfatter Del Skrevet 25. desember 2004 mer ker at det er jul nå ja.. er neste ingen på forumet.. *håpernoensvarernå* for å få til en dropdownmney.. skal jeg lage en variabel slik? $ovelse = $_POST['ovelse']; > <select name="ovelse" size="1"> <option value="femtifri">50 m fri</option> <option value="hundrefri">100m fri</option> <option value="tohundrefri">200 m fri</option> <option value="firehundrefri">400 m fri</option> </select> og så lage: if ($ovelse == femtifri) $wr = 2129; if ($ovelse == hundrefri) $wr = 4700; o.s.v...? blir det feil? Lenke til kommentar
TorS Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 Htmlen din var riktig, men det var noe smårusk i php'en, selv om du har fått med deg det viktigste Du kan gjøre det med if/else, som du har prøvd på: if ($ovelse == "femtifri") $wr = 2129; elseif ($ovelse == "hundrefri") $wr = 4700; Det jeg endret på her, var gåseøynene rundt femtifri og hundrefri, og jeg gjorde den andre if-setningen om til elseif. Det fungerer vel forsåvidt med flere individuelle if-setninger, men dette mener jeg vil bli den riktigste måten. Grunnen til at jeg satt på gåseøyne var at "femtifri" er tekst. Hadde du sjekket om det var et tall, kunne du gjort det uten gåseøyne. En annen, og kanskje lettere mulighet er å bruke en switch-setning: switch ($ovelse) { case "femtifri": $wr = 2129; break; case "hundrefri: $wr = 4700; break; } Den er egentlig lik det forrige eksempelet, bare at du slipper å skrive så mye for hvert alternativ. Særlig når du har mange alternativer lønner det seg med switch fremfor if Lenke til kommentar
Christian_ Skrevet 25. desember 2004 Forfatter Del Skrevet 25. desember 2004 ok har da altså: <?php $ovelse = $_POST['ovelse']; $minutter = $_POST['minutter']; $sekunder = $_POST['sekunder']; $tiendeler = $_POST['tiendedeler']; if ($ovelse == "femtifri") { $wr = 2129; } elseif ($ovelse == "hundrefri") { $wr = 4700; } elseif ($ovelse == "tohundrefri") { $wr = 10335; } elseif ($ovelse == "firehundrefri") { $wr = 21912; } $minuttregner = ($minutter * 60 * 100); $sekundregner = ($sekunder * 100); $oppnadregner = ($minuttregner + $sekundregner + $tiendeler); $oppnadd = $oppnadregner; $forste = ($wr/$oppnadd); $andre = ($forste * $forste * $forste); $tredje = ($andre * 1000); $resultat = floor($tredje); if(empty($sekunder)) { echo "du har ikke fylt ut alle feltene!"; } if(empty($tiendeler)) { echo "du har ikke fylt ut alle feltene!"; } else { echo "du har fått $resultat poeng"; } ?> og html koden: <html> <head> </head> <body> <form method="post" action="phpside.php"> <fieldset> <legend>Svømmegreie</legend> <select name="ovelse" size="1"> <option value="femtifri">50 m fri</option> <option value="hundrefri">100m fri</option> <option value="tohundrefri">200 m fri</option> <option value="firehundrefri">400 m fri</option> </select> <input type="text" name="minutter" value="Minutter" /><br /> <input type="text" name="sekunder" value="Sekunder" /><br /> <input type="text" name="tiendedeler" value="Tiendedeler" /><br /> <input type="submit" value="Kjør!" /> </fieldset> </form> </body> </html> ser den riktig ut? Lenke til kommentar
toss Skrevet 25. desember 2004 Del Skrevet 25. desember 2004 et tips kan være å teste ut om det funker selv hvis det gjør, er det jo riktig.. 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å