Hallo,

Krijg een SQL error die als volgt is:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' = '' WHERE userid = '15' AND enqueteid = '1'' at line 4

De query waardoor dit komt heb ik inmiddels gevonden. Dat is de volgende:

<?
$sql = "UPDATE PP1 SET '".$PUT."' = '".$TUSSENSTAND."' WHERE userid = '".$USER."' AND enqueteid = '".$ENQUETE."' ";

$res = mysql_query($sql) or die(mysql_error());
?>

Deze query is echter goed. Deze wordt namelijk een paar keer meer gebruikt tijdens het doorlopen van het script en dan werkt hij wel goed :S.

Alleen de laatste keer dat hij gebruikt moet worden dan geeft hij deze error :S Iemand enig idee?
Jan Koehoorn schreef op 22.09.2006 00:14
Check het eens zo:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
print_r ($_POST);
}
?>
dan zie je of er iets in de POST array zit.


En je ziet WAT er in zit, en dat is vaak nog fijner ;-)
Probeer het eens met LIKE, wil ook weleens vreemd genoeg schelen..
althans.. bij mij dan
@ Wout: het gaat niet om LIKE. Het gaat er om dat de variabele $PUT niet gevuld wordt waardoor er geen tabelnaam in de query komt te staan.
Is het wel met hoofdletters? Zie het formulier.
En wat geeft het scriptje van Jan als antwoord?
Hoe haal je $PUT op uit je formulier, gaat er nog een soort van controle overheen? Als het veldnaam PUT is, en je method POST, dan krijg je:

$PUT=gecontroleerde($_POST['PUT']);

met GET krijg je:
$PUT=gecontroleerde($_GET['PUT']);
____________________________________________

gecontroleerde wil alleen zeggen dat je de POST of GET waarde wel moet controleren, voor je hem gaat gebruiken.
Dat script van Jan kan ik vanavond helaas pas testen ben de hele dag aan het werk op een plek waar ik het bestand niet kan bereiken.

$PUT (en ook $TUSSENSTAND) worden niet opgehaald uit het formlier. $antwoordsoort echter wel.

Met de volgende code wordt PUT en TUSSENSTAND gevuld, tenminste dat zou hij moeten doen.

<?
$antwoordsoort = $_POST['antwoordsoort'];
if ($antwoordsoort == "vorm"){
$PUT = "vragen_vorm";
$TUSSENSTAND = "4" //deze waarde is echter variabel maar even ter vb.
}elseif ($antwoordsoort == "ingetogen"){
$PUT = "vragen_ingetogen";
$TUSSENSTAND = "2"
}else{
1. Fout, geen antwoordsoort gegeven.
}
?>

De else zorgt ervoor dat ik weet wanneer de variabele $antwoordsoort geen waarde heeft. Vandaar dat ik weet dat ik in de Post moet gaan kijken of deze waarde ingevuld wordt!

Aangezien $PUT niet gevuld wordt denk ik dat $antwoordsoort niet de goede waarde krijgt.
<?
$antwoordsoort = $_POST['antwoordsoort'];
if ($antwoordsoort == "vorm"){
$PUT = "vragen_vorm";
$TUSSENSTAND = "4" //deze waarde is echter variabel maar even ter vb.
}elseif ($antwoordsoort == "ingetogen"){
$PUT = "vragen_ingetogen";
$TUSSENSTAND = "2"
}else{
echo '1. Fout, geen antwoordsoort gegeven.';//zoals jij hem had zie je geen melding, dus als het goed is moet je nu wel deze melding zien.
}
?>

Reageren