{MySQL} Insert INTO ... WHERE [Fermé]

Signaler
Messages postés
44
Date d'inscription
jeudi 30 juillet 2009
Statut
Membre
Dernière intervention
6 novembre 2010
-
 Gnk -
Bonjour, j'essaye de faire quelque chose depuis plusieurs heures en vain.

Je me posais aussi la question si finalement c'est possible ou pas ?

Peut-on faire par exemple, à la suite d'un formulaire HTML (pas dans la même page mais après avoir envoyé:
("INSERT INTO membres_tbl(ID_anc) VALUES('$new_id') WHERE ID_anc = $anc_ID") or die ("Erreur requette ".mysql_error());


En fait j'aimerais savoir déja si ce code est correct (oui je n'ai pas le formulaire donc je ne peut afficher le code, il est sur un autre ordinateur) mais au moins savoir si c'est possible de faire INSERT INTO ... WHERE
car partout on ne fait référence qu'à SELECT * FROM..... WHERE ....

Voilà, merci à vous et excellente journée.

EDIT:
a oui, je voulais aussi utiliser cette technique pour l'ajout de signature pour les membres, par exemple je fait un formulaire pour envoyer le message de la signature, comment faire ensuite dans la page PHP pour que la signature soit attribuée à ce membre (sinon elle sera attribuée à tous les membres je pense), moi je pensais utiliser les sessions et faire
$pseudo_membre = $_SESSION['login'];
et suite faire dans le formulaire
<INPUT type=hidden name="membre" value="<?php $pseudo_membre ?>">
seulement pareil, je suis bloqué ensuite pour enregistré cela dans la base de données.

A voir également:

4 réponses

Pour ta question initiale, comme la suggérer jeangilles, ton cas nécessite simplement un update des anciennes valeurs avec celles reçues dans ton formulaire. A voir : UPDATE matable SET ....

Au cas où, il existe différentes parades pour insérer ou modifier des données qui peuvent déjà existées :

INSERT INTO matable ('ID') VALUES (3) ON DUPLICATE KEY UPDATE 'ID' = 4;

à peu près, je t'invite à regarder

https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

pour en savoir plus sur la syntaxe.

A farfouiller : IGNORE, REPLACE, ON DUPLICATE KEY...

Cordialement
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 78290 internautes nous ont dit merci ce mois-ci

Messages postés
817
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
160
INSERT ... WHERE, c'est totalement incorrect !

tu veux tester quoi dans ton where, vu que quand tu fais un insert, c'est que ta ligne n'est pas encore créée ...

Il faut passer par un UPDADE dans un cas
Messages postés
153
Date d'inscription
mercredi 31 décembre 2008
Statut
Membre
Dernière intervention
12 septembre 2009
21
va sur http://dev.mysql.com/doc/refman/5.0/fr/update.html
apprends un peu la base de MYSQL, cela t'évitera de perdre trop de temps...

les commandes les + courantes :
INSERT INTO table (...) VALUES (...)
SELECT champ FROM table WHERE condition
UPDATE table SET champ=value
DELETE table WHERE condition

amues toi sur phpmyadmin et testes des requêtes en ligne sur une table test
Ca aurait été pratique pour insérer une entrée en vérifiant qu'elle n'existe pas avant pour éviter une erreur duplicate entry.
INSERT INTO matable ('ID') values (3) WHERE not exists (select * from matable where ID = 3)

Mais non ce n'est pas possible.
Si si c'est faisable table dans table (Mysql), en gros :

Insert into table (xxx,yyy) (select (xxx2,yyy2) table2 Where xxx2=(select max(xxx) from table))
Par exemple pour éviter les doublons antérieurs. Le dernier select on met la condition qu'on veut :)