Page 1 sur 1

Problème INSERT INTO avec WHERE

Posté : 18 mai 2006, 16:42
par $Franky$tarr$
Salut
j'ai un soucis avec ça,ça m'indique une erreur alors que la synthaxe me paraît bonne...

Code : Tout sélectionner

$requetefac = "INSERT INTO `facture` VALUES('$num_fac_bis','$date_der_visite','nonpaye','$vrai_total','','$id_membre') WHERE (`num_fac`!='$num_fac_bis')";
l'erreur vient de la clause where ....Mais je sais pas quoi !!!!

Posté : 18 mai 2006, 16:46
par zeus
INSERT INTO sert à insérer un nouvel enregistrement ... pourquoi veut tu mettre un WHERE ?

Posté : 18 mai 2006, 16:52
par $Franky$tarr$
Je suis entrain de faire un site de vente en ligne.
Quand j'ai fini d'acheter dans le panier , je vais voir la facture.Pas de soucis,mais si la personne veut revenir panier et rajouter une produit,ce message apparait sous la facture

Code : Tout sélectionner

Impossible de sélectionner: Duplicata du champ '1211479618311147962266' pour la clef 1
Cela vient du fait que dans la table facture,ma clé primaire n'est pas autoincremnté ... mais là n'est pas le problème ....

Posté : 18 mai 2006, 16:57
par zeus
Euh bah si :-k

Si ta clé primaire n'est pas auto-incrémentée, il faut que tu récupère la clé primaire la plus grande que contient ta table et que tu l'incrémente via PHP pour la placer dans $num_fac_bis

Mais je me répete, il n'est pas possible d'utiliser une clause WHERE dans un INSERT. C'est illogique puisque tu ne peut pas sélectionner dans une ligne que tu vas insérer

EDIT :
Si tu veux modifier des choses dans un enregistrement existant, c'est UPDATE, pas INSERT

Posté : 18 mai 2006, 17:03
par albat
Il n'y a pas de clause WHERE dans une requête d'insertion.

Posté : 18 mai 2006, 17:08
par $Franky$tarr$
bon j'ai crée un clef primaire avec autoincrémentation...

Mais si je réactualise ma page,ça m'insère les données le nombre de fois que j'actualise ma page.

Tu sais pas comment je pourrais faire pour supprimer les enregistrements antérieurs?

Posté : 18 mai 2006, 17:15
par albat
J'ai l'impression que, comme te l'as suggéré Zeus,
c'est plutôt d'un UPDATE que tu as besoin.

Posté : 18 mai 2006, 17:18
par $Franky$tarr$
Je veux bien faire un update mais si à la base ya rien dans la BDD, c'est pour cela que je fais avec un INSERT

Posté : 18 mai 2006, 17:50
par albat
Eh ben, s'il n'y a rien dans ta BDD,
pourquoi veux-tu ajouter un WHERE à ton INSERT ??? :shock:

Posté : 18 mai 2006, 17:56
par $Franky$tarr$
lol

nan c'est bon.

je fais un isset de ma variable et si elle existe je fais un update sinon je fais un insert