Page 1 sur 1

Doublon avec insert

Posté : 17 nov. 2012, 19:23
par casper92
Bonjour

Je suis débutant en php et je rencontre un souci.
J'ai donc mon code php

$count = $connexion->exec("INSERT INTO panier(id,nom, prix, quantite) VALUES ('','Call','69','1')");

Pour l'instant, pas de souci. QUand je clique sur le bouton, le code insert bien dans la base de données.
Par contre, si je raffraichis la page, cela insert à nouveau.
J'ai parcouru pas mal de forum pour m'apercevoir qu'il fallait utiliser on duplicate key
J'ai donc modifié mon code :

$count = $connexion->exec("INSERT INTO panier(id,nom, prix, quantite) VALUES ('','Call','69','1')ON DUPLICATE KEY UPDATE nom='Call',prix='69',quantite='1' ");

Malheureusement, le résultat reste le même..
Pouvez vous m'aider svp?
Merci à tous

Re: Doublon avec insert

Posté : 17 nov. 2012, 21:09
par AB
Tu n'as que la colonne id qui est unique ? Si une autre colonne est unique c'est normal que ça réécrive une autre ligne.

Sinon ON DUPLICATE KEY UPDATE fonctionne très bien avec les tables MyISAM. Mais j'ai entendu dire qu'il pouvait y avoir des problèmes avec les tables InnoDB.


A part ça si c'est juste pour éviter un pb au rafraichissement de la page, on soumet la requête à une condition d'envoi de formulaire genre if (isset($_POST...){
Et à la fin du traitement on fait une redirection avec un header php sinon le post sera de nouveau soumis en cas de rafraichissement de la page.

Re: Doublon avec insert

Posté : 18 nov. 2012, 00:18
par casper92
Merci beaucoup AB
Tes pistes m'ont aidé à comprendre que c'était mon id qui posait souci. Résultat, je l'ai viré et ça va tout de suite mieux :D