Query voert uit maar niets in database en geen errors
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?
// 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);
?>
// 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);
?>
Gewijzigd op 01/01/1970 01:00:00 door Major Apollo
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if($controleResult){ // query is gelukt
// doe iets
}
else { // query mislukt
echo mysql_error();
}
?>
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.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Ten tweede moet je variabelen buiten de quote's laten:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
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."'";
}
?>
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."'";
}
?>
word
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
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."'";
}
?>
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."'";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Remy Brokke
aha nu krijg ik tenminste fouterrors te zien .... ff doorploeteren :) bedankt Frank !
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?
// 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'";
$result = mysql_query("$controleSQL");
if($result) {
$SQL2 = "UPDATE webcms_vragenlijsten_antwoorden SET
antwoordNL = '".$vraagInhoudNL."',antwoordFR = '" .$vraagInhoudFR."' WHERE memberId='".$id."' AND vraagId='".$i."'";
} else {
$SQL2 = "INSERT INTO webcms_vragenlijsten_antwoorden (memberId,vraagId,antwoordNL,antwoordFR)
VALUES ('".$id." ','" .$i."','" .$vraagInhoudNL."','" .$vraagInhoudFR."')";
}
echo 'SQL : '.$SQL2.'<br>';
$result = mysql_query ("$SQL2");
if($result) {
} else {
echo mysql_error();
}
}
?>
// 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'";
$result = mysql_query("$controleSQL");
if($result) {
$SQL2 = "UPDATE webcms_vragenlijsten_antwoorden SET
antwoordNL = '".$vraagInhoudNL."',antwoordFR = '" .$vraagInhoudFR."' WHERE memberId='".$id."' AND vraagId='".$i."'";
} else {
$SQL2 = "INSERT INTO webcms_vragenlijsten_antwoorden (memberId,vraagId,antwoordNL,antwoordFR)
VALUES ('".$id." ','" .$i."','" .$vraagInhoudNL."','" .$vraagInhoudFR."')";
}
echo 'SQL : '.$SQL2.'<br>';
$result = mysql_query ("$SQL2");
if($result) {
} else {
echo mysql_error();
}
}
?>
enkel krijg ik volgend error:
$SQL2 output:
Code (php)
1
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
hmm nu ik dit hier paste zie ik daar geen dubbele quotes : memberId=''44'' ff zoeken waar dat vandaan komt
Daarnaast had je de string $SQL2 in de mysql_query(); tussen quote's staan. Variabelen horen niet tussen quote's!
Ook klopt dit stuk nog steeds niet:
Code (php)
1
2
3
4
2
3
4
<?php
$controleSQL = "SELECT * from webcms_vragenlijsten_antwoorden WHERE memberId=$id AND vraagId='$i'";
$result = mysql_query("$controleSQL");
?>
$controleSQL = "SELECT * from webcms_vragenlijsten_antwoorden WHERE memberId=$id AND vraagId='$i'";
$result = mysql_query("$controleSQL");
?>
Dat moet:
Code (php)
1
2
3
4
2
3
4
<?php
$controleSQL = "SELECT * from webcms_vragenlijsten_antwoorden WHERE memberId = ".$id." AND vraagId = ".$i;
$result = mysql_query($controleSQL) OR DIE(mysql_error());
?>
$controleSQL = "SELECT * from webcms_vragenlijsten_antwoorden WHERE memberId = ".$id." AND vraagId = ".$i;
$result = mysql_query($controleSQL) OR DIE(mysql_error());
?>
worden.
Daarnaast hoeven integers niet tussen eenmalige aanhalingstekens (') in je SQL. Dat moet je dus ook nog even aanpassen in je gehele script.
Gewijzigd op 01/01/1970 01:00:00 door Remy Brokke
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
Hoe kan id nou geen cijfer zijn?