Gå til innhold

Nybegynner skal prøve å lage et php script


Anbefalte innlegg

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 av chs89
Lenke til kommentar
Videoannonse
Annonse

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

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

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 av toss
Lenke til kommentar
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 :dontgetit:

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 av chs89
Lenke til kommentar

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 :sleep:

Endret av toss
Lenke til kommentar

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 av chs89
Lenke til kommentar

mer ker at det er jul nå ja.. :p

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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...