Rekenen: Optellen en aftrekken tegelijk.

Status
Niet open voor verdere reacties.

Stinuz

Terugkerende gebruiker
Lid geworden
14 jun 2003
Berichten
1.245
Hoi, ik heb hier het volgende formulier en verder nog niks omdat het me simpelweg nog niet gelukt is, daarom ben ik hier :p

count.php
HTML:
<html>
<head>
<title>Count</title>
</head>
<body>

<p>

 <FORM action="count.php" method="post">
    <P>
    <LABEL for="from">From</LABEL>

            <select name="from"> 
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             <option value="9">9</option>
             <option value="10">10</option>
            </select>

    <LABEL for="to">To</LABEL>

            <select name="to"> 
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             <option value="9">9</option>
             <option value="10">10</option>
            </select>

    <INPUT type="submit" value="Calculate">
 </FORM>

</p>

</body>
</html>

Stel nu dat de waardes als volgt zijn:

1: 08
2: 9
3: 10
4: 12
5: 14
6: 16
7: 31
8: 37
9: 41
10: 45

Dan wil ik dat als er bijvoorbeeld 4 tot 9 wordt geselecteerd 4 tot en met 8 wordt opgeteld, dat is dus 110. Maar hoe krijg ik dit voor elkaar? :confused:
 
Rare rekenmachine :(

Je zegt in de laatste regel dat je wanneer je 4 tot 9 hebt geselecteerd hij 4 tot en met 8 moet optellen en dat het dan 110 wordt...

Maar bij je formulier zie ik alleen maar een dropbox voor het begin en eentje voor het eind, dus waar je dit gedeelte
1: 08
2: 9
3: 10
4: 12
5: 14
6: 16
7: 31
8: 37
9: 41
10: 45
wilt plaatsen mag je wat mij betreft wel even uitleggen :confused:
 
Eh, ik heb het inderdaad niet helemaal goed uitgelegd. Bij deze nog een poging.

Laten we dit oplossen met een tijd/geld voorbeeld. Je moet de getallen die ik heb gegeven eens zien als minuuten. Stel dat een persoon mij per minuut 0.05 euro betaalt. Dan wil ik graag als de persoon ´´From 4 To 9´´ kiest op deze pagina, uit word gerekend hoeveel minuuten ik aan de gang ben. Dan wordt dus opgeteld:

De 12 minuuten van ´´4´´
De 14 minuuten van ´´5´´
De 16 minuuten van ´´6´´
De 31 minuuten van ´´7´´
De 37 minuuten van ´´8´´

Vervolgens wordt direct onder de keuzelijst weergeven hoe lang ik aan de gang ben (in minuuten) en hoeveel dit hem/haar gaat kosten (in euro´s). Hoe dit script er uit moet komen te zien zou ik echt niet weten, ik gaf maar een dom voorbeeld :p

Zo beter? :D
 
Laatst bewerkt:
Duidelijker wordt het er niet van :confused:

Bedoel je iets van een loon-berekening?

Zoiets als "Ik heb van 08:30 tot 16:00 uur gewerkt en ik verdien €5,- in het uur. Hoeveel heb ik verdient?"

Waarop het script uitrekent dat je 7,5 uur hebt gewerkt en dus 37,50 hebt verdient...

En waar moeten die waardes bij 4, 5 etc vandaan komen?
 
Duidelijker wordt het er niet van :confused:

Bedoel je iets van een loon-berekening?

Zoiets als "Ik heb van 08:30 tot 16:00 uur gewerkt en ik verdien €5,- in het uur. Hoeveel heb ik verdient?"

Waarop het script uitrekent dat je 7,5 uur hebt gewerkt en dus 37,50 hebt verdient...

En waar moeten die waardes bij 4, 5 etc vandaan komen?

Nou, dit zijn dus de waardes :rolleyes:

Code:
1: 08 minuuten
2: 9 minuuten
3: 10 minuuten
4: 12 minuuten
5: 14 minuuten
6: 16 minuuten
7: 31 minuuten
8: 37 minuuten
9: 41 minuuten
10: 45 minuuten

En ja, ik bedoel wel zoiets maar dan in minuuten. En ik bedoel niet dat er gewerkt its van 08:30 tot 19:00 of zoiets dergelijks, dat doet er niet toe, het gaat er gewoon om hoeveel minuuten in totaal.

Als een gebruiker dus selecteerd VAN 4 TOT 9 telt hij dus dit bij elkaar op:

Code:
4: 12 minuuten
5: 14 minuuten
6: 16 minuuten
7: 31 minuuten
8: 37 minuuten

En dat is als ik me niet vergis 110 minuuten

Als ik 0.05 euro per minuut verdien doet hij vervolgens dus 110*0.05=€5,5

Zo vaag is het toch niet :eek:
 
Laatst bewerkt:
Dus dan zijn die waardes bij de 1 t/m 10 variabel?

Want de ene keer werk je op 1 acht minuten maar een andere keer kan dat dus ook 41 zijn?
Dus waar defineer je de waarde voor bijvoorbeeld 1?

En wat houden die 1 t/m 10 precies in? Iets van "In het 1e uur heb ik acht minuten gewerkt en in het 2e negen"?

Misschien is het voor jou niet vaag omdat je weet wat je wilt, maar ik snap er geen hout van... :confused:
 
Voor de duidelijkheid, ik heb nog HELEMAAL geen script, ik had alleen het script in de eerste post gegeven zodat je kon zien dat ik wilde dat gebruikers VAN en TOT konden kiezen maar dat had ik evengoed kunnen typen, ik heb dus ook geen idee waar ik de waardes van 1 t/m 10 moet defineren.

Om van 1 naar 2 te komen werk ik 8 minuuten en van 2 naar 3 werk ik 9 minuuten, maar dit blijft dus altijd hetzelfde, dus er hoeft niet telkens iets anders ingevuld te worden.

Ik zou het graag wat duidelijker uitleggen maar ik zou niet weten hoe.. ik zal proberen een voorbeeld op het internet te vinden. :confused:

EDIT: Ik heb een perfect voorbeeld gevonden maar deze staat op een site die volgens mij niet toegestaan is op helpmij, dus ik stuur hem naar jou personelijk.
 
Laatst bewerkt:
Op reacties die via de e-mail binnen komen reageer ik niet. Daar is dit forum voor. :rolleyes:
:rolleyes:

Ik denk dat ik ongeveer de boel begin te begrijpen...

zet dit eens in count.php
PHP:
/*
 Document: count.php
 Laatst gewijzigd: 06-05-2007
 Maker: Tha Devil @ Helpmij
 Omschrijving: Telt de uren voor het levelen bij
               bij elkaar op en geeft een totaalbedrag
*/

//Array aanmaken, dit maakt het wat makkelijk rekenen en wijzigen.
$minutenArray = array(
"1" => "8",
"2" => "9",
"3" => "10",
"4" => "12",
"5" => "14",
"6" => "16",
"7" => "31",
"8" => "37",
"9" => "41",
"10" => "45"
);

//Bedrag per minuut defineren
$bedrag = 0,05;

if(isset($_POST['submit'])
{
  $min = $_POST['from'];
  $max = $_POST['to'];
  $aantalUur = 0;

  //Aantal minuten berekenen
  for($i = $min; $i < $max; $i++)
  {
    $aantalUur += $minutenArray[$i];
  }
  //Eindbedrag
  $kosten = $bedrag * $aantalUur;

  //Waardes netjes teruggeven hieronder...
}
//Je zou hier het formulier kunnen plaatsen, dan heb je de hele handel in 1 document

Ik weet niet of het met de for-lus wel allemaal goed gaat maar dat hoor ik vanzelf wel.
 
Ik weet dat je niet reageerd via email maar anders had ik m@rio op m´n dak en we kunnen hier natuurlijk gewoon verder :D

Ik moest allereerst hier van de komma een punt maken:

$bedrag = 0.05;

Maar nu krijg ik hier de error:

if(isset($_POST['submit'])
{
$min = $_POST['from'];
$max = $_POST['to'];
$aantalUur = 0;


Parse error: syntax error, unexpected '{' in C:\Downloads\index\rekenen\count.php on line 29

En ik krijg dit niet opgelost :confused:

Bedankt tot zo ver :)
 
:eek: Er moet een extra haakje achter de if-statement...

PHP:
if(isset($_POST['submit']))
{
 
Nu geeft ie geen fouten meer maar hij weergeeft niks als ik op submit druk... script ziet er nu zo uit:

PHP:
<?

/*
 Document: count.php
 Laatst gewijzigd: 06-05-2007
 Maker: Tha Devil @ Helpmij
 Omschrijving: Telt de uren voor het levelen bij
               bij elkaar op en geeft een totaalbedrag
*/

//Array aanmaken, dit maakt het wat makkelijk rekenen en wijzigen.
$minutenArray = array(
"1" => "8",
"2" => "9",
"3" => "10",
"4" => "12",
"5" => "14",
"6" => "16",
"7" => "31",
"8" => "37",
"9" => "41",
"10" => "45"
);

//Bedrag per minuut defineren
$bedrag = 0.05;

if(isset($_POST['submit']))
{
  $min = $_POST['from'];
  $max = $_POST['to'];
  $aantalUur = 0;

  //Aantal minuten berekenen
  for($i = $min; $i < $max; $i++)
  {
    $aantalUur += $minutenArray[$i];
  }
  //Eindbedrag
  $kosten = $bedrag * $aantalUur;

  //Waardes netjes teruggeven hieronder...
}
//Je zou hier het formulier kunnen plaatsen, dan heb je de hele handel in 1 document 
echo'
<p>

 <FORM action="count.php" method="post">
    <P>
    <LABEL for="from">From</LABEL>

            <select name="from"> 
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             <option value="9">9</option>
             <option value="10">10</option>
            </select>

    <LABEL for="to">To</LABEL>

            <select name="to"> 
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             <option value="9">9</option>
             <option value="10">10</option>
            </select>

    <INPUT type="submit" value="Calculate">
 </FORM>

</p>

'. $aantalUur .' <br>
'. $kosten .'

</body>
</html>'; ?>

Ben ik iets vergeten? :eek:
 
Ja je moet natuurlijk wel een $_POST['submit'] hebben :rolleyes:

Gewoon even bij de knop van Calculate wijzigen in dit:
PHP:
<INPUT type="submit" name="submit" value="Calculate">
 
Helemaal overheen gekeken :eek:

Het script werkt helemaal PERFECT :D :thumb:

Is het overigens mogelijk het bedrag af te ronden op 2 cijfers achter de komma? :)
 
Toch mooi dat hij werkt terwijl de bedoeling eerst niet duidelijk was... :)

De functie mag je zelf op gaan zoeken op deze pagina...

Wanneer je hem hebt gevonden moet je hem in onderstaande regel gebruiken.

PHP:
//functie wijzigen in de daadwerkelijke functienaam...
$kosten = functie(($bedrag * $aantalUur), 2);

TIP: zoek naar het engelse woord voor afronden
 
Ik heb het geprobeerd, heb gezocht op ´´wind up´´ ´´wound up´´ en gewoon ´´wind´´ maar hij vind niet wat ik zoek :confused:
 
De nederlandse tekst staat er ook gewoon bij :rolleyes:
round — Rondt een float af

Een float is een getal met cijfers achter de komma
 
Ik heb het zo geprobeerd maar dat doet hij niet:

$kosten = functie(round($bedrag * $aantalUur), 2);

Ik krijg namelijk de error

Fatal error: Call to undefined function functie() in C:\Downloads\index\rekenen\count.php on line 90

Ik moet dus ergens die functie beschrijven ofzo.. hoe doe ik dat?
 
Ik had gedacht dat je dit commentaar wel begreep.
PHP:
//functie wijzigen in de daadwerkelijke functienaam...

Blijkbaar niet :eek:

Dit is de juiste regel:
PHP:
$kosten = round(($bedrag * $aantalUur), 2);
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan