Hallo, ik probeer een UPDATE uit te voeren maar dit lukt niet zo als het zou moeten....

Ik heb een formulier welke data uit de DB haalt, dit gaat goed... Als ik zeg Aanpassen dan moet hij een UPDATE script draaien, dit gaat gedeeltelijk goed...

Hij neemt de gegevens mee naar de pagina en dit krijg ik ook te zien... maar dan... dan doet hij niets....

Het zal ongetwijfeld heel eenvoudig zijn maar ik kom er niet uit...

Dit is het script wat het zou moeten uitvoeren...

Dus ik ga van " form1.php " naar " form2.php " waar hij dus wel de aanpassingen laat zien, ik wil deze tussen stap doen om de vraag te stellen weet je het zeker... dit hoeft opzicht niet maar vond ik wel handig....

waar gaat het mis ?!


<?php

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

include ("db_config.php");

if (isset($_POST['opslaan']))
{

$naam = mysql_real_escape_string($_POST['naam']);
$datum = mysql_real_escape_string($_POST['datum']);
$sku = mysql_real_escape_string($_POST['sku']);
$reden = mysql_real_escape_string($_POST['reden']);
$optie = mysql_real_escape_string($_POST['optie']);
$ontvangen = mysql_real_escape_string($_POST['ontvangen']);
$land = mysql_real_escape_string($_POST['land']);
$afhaal = mysql_real_escape_string($_POST['afhaal']);
$afgerond = mysql_real_escape_string($_POST['afgerond']);
$note = mysql_real_escape_string($_POST['note']);

$sql = "UPDATE pakket SET

naam = '$naam',
datum = '$datum'
sku = '$sku',
reden = '$reden',
optie = '$optie'
ontvangen = '$ontvangen',
land = '$land',
afhaal = '$afhaal'
afgerond = '$afgerond',
note = '$note'

WHERE

id='".$_GET['id']."'";

$update = mysql_query($sql)or die(mysql_error());

}

?>
Zie edit vanwege typo ^
Zou moeten werken.
Nou krijg ik weer een fout op regel 46

Parse error: syntax error, unexpected T_STRING in /home/moto/domains/###.nl/public_html/slijter/test.php on line 46 dat is waar de post staat...

<form action=" <?=$_SERVER['PHP_SELF']?> " method="POST">
Die PHP-code kan je schrappen.
Alleen dit dan ??


<form method="POST">

Toevoeging op 24/01/2016 20:48:01:

hij moet toch een action hebben ??

Toevoeging op 24/01/2016 20:49:31:

krijg dan


Parse error: syntax error, unexpected T_STRING in /home/moto/domains/###.nl/public_html/slijter/test.php on line 46

heb hem action="test.php" gegeven
De PHP-code tussen < ?= en ? > bedoelde ik. Niet de HTML.
???

alleen $_SERVER['PHP_SELF'] dat kan toch niet ??
Die action gewoon leeg houden.
Daarnaast, en dit heeft nog niemand opgemerkt geloof ik? Geef je het id nergens mee.

In de WHERE conditie van je query staat $_GET['id'] - waar komt deze vandaan? Deze zou in de action van je formulier meegegeven moeten worden als je method gelijk is aan "post".

De reden dat je update query niet werkt is omdat je WHERE conditie (nog steeds) niets oplevert. Dientengevolge wordt er ook niets geupdate. Hier was je waarschijnlijk een stuk eerder/sneller achter gekomen als je je query een keertje had weergegeven op je scherm.

Daarnaast lijkt mij het expliciet definiëren van een action altijd een goede zaak en in dit geval heb je deze ook nodig om noodzakelijke informatie door te geven. Een alternatief is dat je het id als een hidden (POST) veld meegeeft aan je formulier.
- Ariën - op 24/01/2016 20:53:44

Die action gewoon leeg houden.


Dan krijg ik die foutmelding op regel 46 waar <form action="" method="POST"> staat

Toevoeging op 24/01/2016 21:02:07:

Thomas van den Heuvel op 24/01/2016 20:55:14

Daarnaast, en dit heeft nog niemand opgemerkt geloof ik? Geef je het id nergens mee.

In de WHERE conditie van je query staat $_GET['id'] - waar komt deze vandaan? Deze zou in de action van je formulier meegegeven moeten worden als je method gelijk is aan "post".

De reden dat je update query niet werkt is omdat je WHERE conditie (nog steeds) niets oplevert. Dientengevolge wordt er ook niets geupdate. Hier was je waarschijnlijk een stuk eerder/sneller achter gekomen als je je query een keertje had weergegeven op je scherm.


Het id krijgt hij netjes mee vanaf de pagina die er voor zit, hij vult alle waarde ook prima in inc. de id ( als ik die er bij zet )
Daarnaast lijkt mij het expliciet definiëren van een action altijd een goede zaak en in dit geval heb je deze ook nodig om noodzakelijke informatie door te geven. Een alternatief is dat je het id als een hidden (POST) veld meegeeft aan je formulier.


Roland Reijerse op 24/01/2016 21:01:17

[quote="- Ariën - op 24/01/2016 20:53:44"]
Die action gewoon leeg houden.


Dan krijg ik die foutmelding op regel 46 waar <form action="" method="POST"> staat
[/quote]
Dan is er wat anders aan de hand in je code. Laat de relevante code eens zien met ongeveer 10 regels voor en na de lijn waar je probleem is?

Reageren