Beste Phphulp dudes,

Ik ben bezig met een scriptje , waarbij ik een insert into moet doen maar als er geen record in de database staat een update

Doe ik dit met INSERT INTO veld waarde ON DUPLICATE KEY UPDATE veld SET waarde , of doe ik het verkeerd ?

<?
mysql_query('INSERT INTO beurs_users (user_id , beurs_id , inkoop_prijs , aantal) VALUES ('.$data['id'].','.$row['beurs_id'].','.$rows['inkoop_prijs'].','.$aantal.') ON DUPLICATE KEY UPDATE beurs_users SET aantal=' . $row['aantal'] . ' WHERE beurs_id=' . $row['beurs_id'] . ' AND user_id=' . $data['id'])or die(mysql_error());
?>

Even wat getest de bovenstaande sql is fout

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 'SET aantal=11 WHERE beurs_id=1 AND user_id=2' at line 1

Gr Mike
Wat ik altijd doe, en misschien is het omslachtig, is eerst de record selecteren, en kijken of er wat uit komt.

Dus, zoiets:


$check = mysql_query('SELECT id FROM beurs_users WHERE beurs_id=' . $row['beurs_id'] . ' AND user_id=' . $data['id'] . ' LIMIT 1');

if (mysql_num_rows($check)>0)
{
    mysql_query('UPDATE beurs_users SET aantal=' . $row['aantal'] . ' WHERE beurs_id=' . $row['beurs_id'] . ' AND user_id=' . $data['id']);
}
else
{
    mysql_query('INSERT INTO beurs_users (user_id , beurs_id , inkoop_prijs , aantal) VALUES ('.$data['id'].','.$row['beurs_id'].','.$rows['inkoop_prijs'].','.$aantal.');
}


Volgens mij snap je dat wel :)

Reageren