Problème INSERT INTO avec WHERE

Eléphanteau du PHP | 16 Messages

18 mai 2006, 16:42

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 !!!!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2006, 16:46

INSERT INTO sert à insérer un nouvel enregistrement ... pourquoi veut tu mettre un WHERE ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 16 Messages

18 mai 2006, 16:52

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 ....

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2006, 16:57

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 mai 2006, 17:03

Il n'y a pas de clause WHERE dans une requête d'insertion.

Eléphanteau du PHP | 16 Messages

18 mai 2006, 17:08

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?

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 mai 2006, 17:15

J'ai l'impression que, comme te l'as suggéré Zeus,
c'est plutôt d'un UPDATE que tu as besoin.

Eléphanteau du PHP | 16 Messages

18 mai 2006, 17:18

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

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 mai 2006, 17:50

Eh ben, s'il n'y a rien dans ta BDD,
pourquoi veux-tu ajouter un WHERE à ton INSERT ??? :shock:

Eléphanteau du PHP | 16 Messages

18 mai 2006, 17:56

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