met volgende routine haal ik form data uit een form en wil die dan in de antwoordentabel opslaan, de controlesql wordt eerst uitgevoerd om te zien of dit record als bestaat, indien wel of niet dan word de juiste insert of update query uitgevoerd.
Ik doe nog een echo om de SQL query te cheken, echter krijg ik geen foutmeldingen maat er wordt niets in de database gestopt...
De routine:
<?
// Vragenlijst stuff
$aantalVragen = '24';
for ($i=1;$i<=$aantalVragen;$i++){
$vraagInhoudNL = addslashes ($_POST['vraagNL'.$i]);
$vraagInhoudFR = addslashes ($_POST['vraagFR'.$i]);
$controleSQL = "SELECT * from webcms_vragenlijsten_antwoorden WHERE memberId=$id AND vraagId='$i'";
$controleResult = mysql_query("$controleSQL");
$SaveControle = mysql_fetch_row($controleResult);
if ($SaveControle<1) {
$SQL2 = "INSERT INTO webcms_vragenlijsten_antwoorden (memberId,vraagId,antwoordNL,antwoordFR)
VALUES ('$id','$i','$vraagInhoudNL','$vraagInhoudFR')";
} else {
$SQL2 = "UPDATE webcms_vragenlijsten_antwoorden SET
antwoordNL = '$vraagInhoudNL',antwoordFR = '$vraagInhoudFR' WHERE memberId='".$id."' AND vraagId='".$i."'";
}
echo 'SQL : '.$SQL2.'<br>';
$sql_result = mysql_query ("$SQL2");
}
mysql_close($dbconnect);
?>
Dit stuk ontbreekt:
<?php
if($controleResult){ // query is gelukt
// doe iets
}
else { // query mislukt
echo mysql_error();
}
?>
En zo zul je alle queries moeten controleren.
Tip: Geef het resultaat van een query altijd de naam $result. Dan kun je daar nooit mee de mist in gaan. $controleResult is dan dus niet zo handig.
UPDATE webcms_vragenlijsten_antwoorden SET antwoordNL = 'Ja',antwoordFR = 'Oui' WHERE memberId=''44'' AND vraagId='1'
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 '44'' AND vraagId='1'' at line 2
bedankt voor alle tips, probleem met het script was hoofdzakelijk dat de inhoud van $id niet enkel een cijfer was maar er stonden nug quotes erin ook dus $id was '3' ipv 3