Ik probeer nu het volgende te doen. Ik heb een DB met een webinterface waar ik gegevens van producten kan invoeren. Nu loop ik tegen het volgende aan:
Wat is de juiste manier om waardes uit een invoerveld op te tellen of af te trekken van de waardes in de DB
BV.
Heb in databse 10 appels. ik wil er 2 appels bij toevoegen via een HTMLform. Hoe kan ik deze rekensom(?)maken met waardes die ik uit een HTML form haal en de waardes die ik uit me Database haal?
Ik heb zelf geen flauw idee. Kan iemand me misschien een beetje op weg helpen?
Ben weer lekker aan het proberen/spelen bedankt voor de tip Frank.
Me code is nu:
<?php
//Variables
$part = $_POST[ 'part' ];
$aantal = $_POST[ 'aantal' ];
// het valideren doen we in een aparte functie om onze code overzichtelijk te houden.
function validate()
{
$errors = array();
if(strlen($_POST['aantal']) == 0)
$errors[] = 'U moet de aantal opgeven.';
return $errors;
}
// lege array voor de errors
$errors = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$errors = validate(); // roep de functie validate() aan en zet de foutmeldigen in $errors.
if(!count($errors)) // als er geen foutmeldingen zijn
{
// include connection file
include("config.php");
$sql = "UPDATE aantal SET onderdelen=aantal+" . $aantal . " WHERE id=" . $part;
{ header( "location:admin.php"); }
}
// laat de foutmeldingen zien als ze er zijn
foreach($errors as $error)
{
echo $error.'<br>';
}
}
?>
Enig idee waar ik de mist in gaar? of zit ik totaal verkeerd te denken?
BEdankt voor de tip zover.
Ik krijg wel een doorverwijzing anar me admin page maar de aantal worden niet geupdate.
Nu is je code niet meer logisch. Je gaat nu eerst $_POST variabelen gebruiken (regel 4 en 5) en pas dan controleren of er wel iets gepost is (regel 21)
<?php
// het valideren doen we in een aparte functie om onze code overzichtelijk te houden.
function validate()
{
$errors = array();
if(strlen($_POST['aantal']) == 0)
$errors[] = 'U moet de aantal opgeven.';
return $errors;
}
// lege array voor de errors
$errors = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$errors = validate(); // roep de functie validate() aan en zet de foutmeldigen in $errors.
if(!count($errors)) // als er geen foutmeldingen zijn
{
// include connection file
include("config.php");
//Variables
$part = $_POST[ 'part' ];
$aantal = $_POST['aantal'];
$sql = "UPDATE onderdelen SET aantal=aantal+" . $aantal . " WHERE id=" . $part;
{ header( "location:admin.php"); }
}
// laat de foutmeldingen zien als ze er zijn
foreach($errors as $error)
{
echo $error.'<br>';
}
}
?>
Oke duidelijk. id is dus heel iets anders als part.
je moet in heel je code $part veranderen naar $id en $_POST['part'] naar $_POST['id']. vervolgens moet er ook een formulierveld in je form komen (als die er nog niet is) met name="id". Hierin moet het correcte id komen van de database record die bewerkt wordt.
Wat is de reden dat je voor aantal een decimal data type hebt gekozen? Ergens kan ik me nog voorstellen dat je halve aantallen kan hebben (als je bijvoorbeeld kaas per kilo administreert, kan je een halve kaas hebben), maar doordat je DECIMAL(5,0) definieert kan je weer geen decimalen opslaan. Per saldo is dit dus gewoon een INT type, waarom dan niet ook een INT type definieren?
Daar zat ik aan te denken, maar ben nog echt een groentje. Dus komt wel is voor da de meest voor de hand liggen dingen voor mijn nog mysterieuze zaken zijn