Ik wil wel helpen, ik doe veel wiskunde met php maar zou je de werking van je script eens willen beschrijven?
Alvast bedankt!
Link gekopieerd
volgens mij snap je er de ballen niet van :)
Sorry maar ik kon het niet laten..
Waarom zet je eerst dat $_POST['ballen'] op 4000?
Want als hij een waarde heeft dan hoef je alleen nog maar de rekensom te maken.
Wat je nu doet is zeggen: ik heb alleen maar 4000 ballen..
Link gekopieerd
Dat vond ik ook al wat vreemd.
Misschien moesten er 2 gelijk aan tekens?
Link gekopieerd
Hij is vrij simpel.
Als het aantal 4000 is moet hij zeggen 90
Als het aantal 2000 is moet hij zeggen 45
Als het aantal < 2000 moet hij rekenen
Aantal / 500 * 12
Als het aantal > 2000 en < 4000 moet hij het volgende doen
(Aantal - 2000) / 500 * 12 + 45
Want elke 2000 is 45 erbij en elke 500 is 12 erbij
In feite zijn dit de mogelijke uitkomsten
500 = 12
1000 = 24
1500 = 36
2000 = 45
2500 = 57
3000 = 69
3500 = 81
4000 = 90
Hoop dat ik duidelijk genoeg ben voor je.
Alvast bedankt.
[size=xsmall]Toevoeging op 13/05/2012 12:06:52: [/size]
Klopt Dem,
Het moesten er 2 zijn, die heb ik al opgelost, maar het juiste antwoord krijg ik nog niet.
Nu geeft hij als uitkomst 45, terwijl ik 1500 heb opgegeven.
Het antwoord zou dus 36 moeten zijn
[size=xsmall]Toevoeging op 13/05/2012 12:39:58: [/size]
Ik heb nu dit geprobeerd, maar dit resulteert in 0
<?php
$entree = 10;
if ($_POST['ballen'] == 4000)
{
$bal = 90;
if ($_POST['ballen'] < 2000)
{
$bal = $_POST['ballen'] / 500 * 12;
if ($_POST['ballen'] > 2000)
{
$bal = ($_POST['ballen'] - 2000) / 500 * 12 + 45;
if ($_POST['ballen'] == 2000)
{
$bal = 45;
}
}
}
}
$totaal = $entree + $bal;
?>
Link gekopieerd
Dus eerst zeg je "als het aantal 4000 is dan" en binnen die if zeg je "en als het aantal kleiner dan 2000 is". Dat kan natuurlijk nooit. Ga eens naar een if... Elseif constructie kijken.
[size=xsmall]Toevoeging op 13/05/2012 12:56:22: [/size]
En een ps, dit is een reken probleem, geen wiskundig probleem.
Link gekopieerd
Of kijk naar een switch-constructie.
Link gekopieerd
J
Jurgen B
13-05-2012 12:59
gewijzigd op 13-05-2012 13:15
<?php
$entree = 10;
switch ($_POST['ballen']) {
case 4000:
$bal = 90;
break;
case 2000:
$bal = 45;
break;
case $_POST['ballen'] < 2000:
$bal = $_POST['ballen'] / 500 * 12;
break;
case $_POST['ballen'] > 2000 && $_POST['ballen'] < 4000:
$bal = ($_POST['ballen'] - 2000) / 500 * 12 + 45;
break;
case default:
/* iets van een foutmelding ofzo
dan wel controleren of $bal is ingevuld bij $totaal */
break;
}
$totaal = $entree + $bal;
?>
Dit kan uiteraard ook met if / elseif.
Link gekopieerd
- Diov -
13-05-2012 13:12
gewijzigd op 13-05-2012 13:13
Hier de code die volgens mij werkt.
<?php
$entree = 10;
$_POST['ballen'] = 500; // Dit is een voorbeeld, dit kan je natuurlijk weglaten. Was om te testen!
if ($_POST['ballen'] == 4000)
{
$bal = 90;
}
elseif ($_POST['ballen'] == 2000)
{
$bal = 45;
}
elseif ($_POST['ballen'] < 2000)
{
$bal = $_POST['ballen'] / 500 * 12;
}
elseif ($_POST['ballen'] > 2000 AND $_POST['ballen'] < 4000)
{
$bal = ($_POST['ballen'] - 2000) / 500 * 12 + 45;
}
else
{
echo 'POST waarde voldoet niet aan bovenstaande eisen!';
}
$totaal = $entree + $bal;
echo $bal; // prijs van $bal
echo '<br>'; // spatie
echo $totaal; // totaalprijs
?>
Link gekopieerd
Ik ga het eens proberen, hartstikke bedankt allemaal
Link gekopieerd
<?php
#| De basis entree.
$entree = 10;
#| De extra entree berekend aan de hand van de gekozen aantal ballen.
$bal = (($base = floor($_POST['ballen'] / 2000)) * 45) + ((($_POST['ballen'] - ($base * 2000)) / 500) * 12);
#| Het totaal berekenen.
$totaal = $entree + $bal;
?>
Of het er gewoon hard coded in zetten want het ziet er niet naar uit dat het veel veranderd.
<?php
#| De basis entree.
$entree = 10;
#| De kosten per ballen.
$bal_entree = array(500 => 12, 1000 => 24, 1500 => 36, 2000 => 45); // en zo verder.
#| De extra entree berekend aan de hand van de gekozen aantal ballen.
$bal = $bal_entree[$_POST['ballen']];
#| Het totaal berekenen.
$totaal = $entree + $bal;
?>
Link gekopieerd