Bedenk me net, de opties voor $salaris zijn allemaal decimale getallen (0,00). Misschien dat het hieraan kan liggen? En zo ja, hoe kan ik dit oplossen.
Simpel inlogsysteem hulp
echo (float) $salaris_berekend;
Krijg nagenoeg niks voor elkaar.. Helaasch
Als je in MySQL met kommagetallen werkt moet je die omzetten naar "puntgetallen" tenzij je server anders is ingesteld op het decimaalteken.
toevoeging op 20 augustus 2014, 23:38:10:
Wat krijg je uit var_dump($_POST);?
toevoeging op 20 augustus 2014, 23:38:10:
Wat krijg je uit var_dump($_POST);?
Bugged schreef:toevoeging op 20 augustus 2014, 23:38:10:Als je in MySQL met kommagetallen werkt moet je die omzetten naar "puntgetallen" tenzij je server anders is ingesteld op het decimaalteken.
Wat krijg je uit var_dump($_POST);?
Hij werkt nog niet met mysql
toevoeging op 21 augustus 2014, 07
14:Probeer eens (float) te zetten bij die $_POST vars
toevoeging op 21 augustus 2014, 07
32:Probeer eens (float) te zetten bij die $_POST vars
Ligt eraan wat je invult idd.
Als je dit eens doet, eigenlijk wat Dylanh zegt:
Dan zou hij het beter moeten doen.
Als hij het dan nog niet doet, dan is er een fout in de namen van je $_POST denk ik
Als je dit eens doet, eigenlijk wat Dylanh zegt:
$salaris = (float)$_POST[salaris]; Dan zou hij het beter moeten doen.
Als hij het dan nog niet doet, dan is er een fout in de namen van je $_POST denk ik
Hij kan dus het beste eerst een var_dump($POST) doen om te kijken of de waardes uberhaubt wel goed verzonden worden.
Ik heb geen tijd om te googlen op mobiel, maar kan iemand mij uitleggen wat (float) doet?
Een variabele om-typecasten naar een float.
Wat aarclay zegt. In PHP doet het vaak niet zo heel veel, omdat PHP gebruik maakt van mixed datatypes. Maar in bijvoorbeeld java kan je niet zomaar van een int een float maken. Je moet dan gebruik maken van functies om de veriabele om te zetten naar een ander type, of je gaat typecasten, om tijdelijk een variable een ander type te geven.
Job schreef:Okay. Adh van verschillende tutorials probeer ik nu een geheel nieuw systeempje te bouwen, wat ik eerst ga uitwerken met heel simpel PHP (en dat kan, heb op dit moment nog geen MySQL nodig). Als dat klaar is en gecontroleerd is wil ik het later nog gaan uitbreiden met diverse database functies, maar dat is van later zorg. Ik loop vast op één stuk: Het systeem is een stukje code waarbij een werkgever het aantal gewerkte uren van een werknemer aan kan geven, en vervolgens het salaris per uur ook nog aan kan geven. Natuurlijk willen we dat het aantal gewerkte uren vermenigvuldigd word met het salaris per uur, maar dat lukt niet. Zie hieronder.
$aantal_uren = $_POST[aantal_uren];
$werknemer = $_POST[werknemers];
$salaris = $_POST[salaris];
$salaris_berekend = ( $salaris * $aantal_uren );
echo $salaris_berekend; Bij de berekening gaat het ergens fout, want hij vermenigvuldigt het aantal gewerkte uren met 2, niet met $salaris. Dit is het enige stukje PHP in de hele code. Ik hoor het graag van jullie!
Dit werkt gewoon hoor;
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
$aantal_uren = /*$_POST[aantal_uren]*/ 10;
$werknemer = /*$_POST[werknemers];*/
$salaris = /*$_POST[salaris]*/ 2.30;
$salaris_berekend = ( $salaris * $aantal_uren );
echo $salaris_berekend;
?>
Ligt dus aan je formulier of je tik een , in. Probeer eens een .
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
$aantal_uren = str_replace(,, ., $_POST[aantal_uren]);
$werknemer = $_POST[werknemers];
$salaris = str_replace(,, ., $_POST[salaris]);
$salaris_berekend = $salaris * $aantal_uren;
echo $salaris_berekend;
?>
1
2
3
4
5
6
7
8
$aantal_uren = str_replace(,, ., $_POST[aantal_uren]);
$werknemer = $_POST[werknemers];
$salaris = str_replace(,, ., $_POST[salaris]);
$salaris_berekend = $salaris * $aantal_uren;
echo $salaris_berekend;
?>