Query voert uit maar niets in database en geen errors

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Major Apollo

Major Apollo

04/04/2007 19:57:00
Quote Anchor link
Hey,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?

// 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
 
PHP hulp

PHP hulp

23/12/2024 03:07:24
 
Frank -

Frank -

04/04/2007 20:01:00
Quote Anchor link
Dit stuk ontbreekt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?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.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Remy Brokke

Remy Brokke

04/04/2007 20:13:00
Quote Anchor link
Ten eerste mis ik een:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
error_reporting(E_ALL);
?>


Ten tweede moet je variabelen buiten de quote's laten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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."'";
    }

?>


word

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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."'";
    }

?>
Gewijzigd op 01/01/1970 01:00:00 door Remy Brokke
 
Major Apollo

Major Apollo

04/04/2007 20:15:00
Quote Anchor link
aha nu krijg ik tenminste fouterrors te zien .... ff doorploeteren :) bedankt Frank !
 
Major Apollo

Major Apollo

04/04/2007 20:23:00
Quote Anchor link
heb de code wat aangepast volgens wat jullie voorstelden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?

// 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)
PHP script in nieuw venster Selecteer het PHP script
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
 
Major Apollo

Major Apollo

04/04/2007 20:24:00
Quote Anchor link
hmm nu ik dit hier paste zie ik daar geen dubbele quotes : memberId=''44'' ff zoeken waar dat vandaan komt
 
Remy Brokke

Remy Brokke

04/04/2007 20:32:00
Quote Anchor link
Er staat nu heel leuk het mini scriptje van Frank. Maar in de eerst if moet je dus iets uitvoeren. Je kunt het beter zo doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$result
= mysql_query($SQL2) OR DIE(mysql_error());
?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    $controleSQL
     = "SELECT * from webcms_vragenlijsten_antwoorden WHERE memberId=$id AND vraagId='$i'";
    $result             = mysql_query("$controleSQL");
?>


Dat moet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    $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
 
Major Apollo

Major Apollo

04/04/2007 20:45:00
Quote Anchor link
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
 
Klaasjan Boven

Klaasjan Boven

04/04/2007 22:06:00
Quote Anchor link
Hoe kan id nou geen cijfer zijn?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.