Rekenen met waardes uit mysql database.
na al aardig wat googlen en er nog niet uit gekomen te zijn. (mysql krijg ik nog steeds niet onder controlle)
gegevens in de database schieten en er uit lezen gaat prima.
maar nu wil ik een vakantie uren pagina maken.
dus de bestaande vakantie uren (cijfer) op halen en hier mee gaan rekenen.
het moet op te tellen zijn en af te trekken.
zodat als ik vakantie uren gebruik of er bij krijg er uren af of op geteld kan worden. (a.d.h.v. het cijfer in de database minus mijn ingevoerde cijfer en idem met optellen)
dit heb ik weten te bemachtigen en aangepast hoe ik dacht dat het moest maar helaas....
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$sql = "SELECT 'uren' FROM `vakantieuren` WHERE `id` = '2'";
if($_SERVER['REQUEST_METHOD'] == 'POST') //kijken of er op verzenden is gedrukt.
{ //accolade openen.
$gebruiker = $_POST['gebruiker']; //de waarde die de gebruiker ingevuld heeft dmv het formulier.
$uitkomst = $gebruiker + $sql; //hier gaan we dus de vaste waarde vermenigvuldigen met de gebruiker waarde.
echo "De uitkomst is: ".$uitkomst; //en hier echoen we de uitkomst.
} //acolade sluiten.
else //als er nog niet op verzenden is gedrukt, wat dan?
{// accolade openen, daarna sluiten we voor het gemak php even en laten we het formulier zien.
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Getal: <input type="text" name="gebruiker" size="1">
<input type="submit" value="Bereken!">
</form>
<?php //de php-tag weer openen.
} //en de accolade weer sluiten en daarna de php-tag sluiten. Makkelijk toch?!
?>
$sql = "SELECT 'uren' FROM `vakantieuren` WHERE `id` = '2'";
if($_SERVER['REQUEST_METHOD'] == 'POST') //kijken of er op verzenden is gedrukt.
{ //accolade openen.
$gebruiker = $_POST['gebruiker']; //de waarde die de gebruiker ingevuld heeft dmv het formulier.
$uitkomst = $gebruiker + $sql; //hier gaan we dus de vaste waarde vermenigvuldigen met de gebruiker waarde.
echo "De uitkomst is: ".$uitkomst; //en hier echoen we de uitkomst.
} //acolade sluiten.
else //als er nog niet op verzenden is gedrukt, wat dan?
{// accolade openen, daarna sluiten we voor het gemak php even en laten we het formulier zien.
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Getal: <input type="text" name="gebruiker" size="1">
<input type="submit" value="Bereken!">
</form>
<?php //de php-tag weer openen.
} //en de accolade weer sluiten en daarna de php-tag sluiten. Makkelijk toch?!
?>
EDIT : ik zou ook graag willen dat de veranderingen in de database worden opgeslagen inclusief een datum.
het laatse bijgewerkte is dus elke keer het nieuwe vakantie uren getal waar mee gerekend moet worden.
Gewijzigd op 22/11/2013 22:04:58 door Marcel sauer
Marcel sauer op 22/11/2013 21:51:29:
gegevens in de database schieten en er uit lezen gaat prima.
eerst initialiseer je $sql met een lap tekst (je query).
dan doe je $_POST['gebruiker'] + $sql. wat verwacht je daarvan?
$sql is een tekst en daar kun je dus niet mee rekenen. Bovendien haal je nergens de gegevens uit de database.
Gewijzigd op 23/11/2013 00:56:27 door Frank Nietbelangrijk
En wie moet de SQL uitvoeren dan? ik zou even teruggaan naar de basis van sql en daarmee eerst oefenen.
2. Dan moet je vervolgens iets met de $sql doen: $query = mysql_query($sql);
3. Vervolgens moet je de data nog fetchen en heb je $resultaat = mysql_fetch_row($query);
4. Met je $resultaat kan je vervolgens gaan rekenen
Dus dan zou het worden:
$uitkomst = $resultaat + $gebruiker
Gewijzigd op 23/11/2013 13:24:23 door Bas IJzelendoorn
ik kom er helaas nog steeds niet uit bedankt voor de reacties ik ga nog even ploeteren
nu wil ik de uitkomst gelijk invoeren in mijn database met datum.
alleen voert hij niks in.
wat doe ik nu nog fout?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') //kijken of er op verzenden is gedrukt.
{ //accolade openen.
$gebruiker = $_POST['gebruiker']; //de waarde die de gebruiker ingevuld heeft dmv het formulier.
$saldo = $_POST['saldo'];//de waarde die de gebruiker ingevuld heeft dmv het formulier.
$uitkomst = $gebruiker + $saldo; //hier gaan we dus de vaste waarde vermenigvuldigen met de gebruiker waarde.
echo "De uitkomst is: ".$uitkomst; //en hier echoen we de uitkomst.
$uitkomst = $_POST['uren'];
$sql = "INSERT INTO vakantieuren (uren,date) VALUES ('$uitkomst',NOW())";
} //acolade sluiten.
else //als er nog niet op verzenden is gedrukt, wat dan?
{// accolade openen, daarna sluiten we voor het gemak php even en laten we het formulier zien.
?>
if($_SERVER['REQUEST_METHOD'] == 'POST') //kijken of er op verzenden is gedrukt.
{ //accolade openen.
$gebruiker = $_POST['gebruiker']; //de waarde die de gebruiker ingevuld heeft dmv het formulier.
$saldo = $_POST['saldo'];//de waarde die de gebruiker ingevuld heeft dmv het formulier.
$uitkomst = $gebruiker + $saldo; //hier gaan we dus de vaste waarde vermenigvuldigen met de gebruiker waarde.
echo "De uitkomst is: ".$uitkomst; //en hier echoen we de uitkomst.
$uitkomst = $_POST['uren'];
$sql = "INSERT INTO vakantieuren (uren,date) VALUES ('$uitkomst',NOW())";
} //acolade sluiten.
else //als er nog niet op verzenden is gedrukt, wat dan?
{// accolade openen, daarna sluiten we voor het gemak php even en laten we het formulier zien.
?>
Op regel 11 overschrijf je de uitkomst.
ik kan ook die regel niet weg laten toch?
ik kan hem ook niet zo maken want dit werkt ook niet:
Gewijzigd op 06/12/2013 21:33:01 door marcel sauer
Geen idee wat de bedoeling is van regel 11.
zonder regel 11 doet hij dit ook niet ....
Regel 11 heeft niets met de berekening te maken.
Toevoeging op 06/12/2013 22:30:07:
En uiteraard de query ook nog uitvoeren.
nu zie ik wat ik fout deed de query!!
fixed!
Ik zie nu pas (sorry) dat je de query in je eerste post ook niet uitvoerd en ook geen fetch doet, maar dat je de string op probeert te tellen.