- Gérer les entrées dupliquées My SQL & Remplir un <SELECT>?? [PHP] - PHP - Programmation
Marsh Posté le 09-04-2005 à 14:04:37
Pourquoi tu fais pas un SELECT sur ta clef pour voir si la valeur existe deja?
Marsh Posté le 09-04-2005 à 14:15:46
je pense que dans ton cas, il vaux mieux que tu utilises replace...
http://dev.mysql.com/doc/mysql/en/replace.html
Marsh Posté le 09-04-2005 à 17:23:22
dsl j'ai fait une sieste
Je vais regarde ça ...
Je pourrai faire un select c sur ...mais vu que mysql me renvoi une jolie erreur toute formatée pourquoi ne pas utiliser ça ?
Marsh Posté le 09-04-2005 à 18:47:12
Parceqie les erreurs sont la pour signaler un disfonctionnement Pas pour etre canalisées et utiliser pour autre choses
Marsh Posté le 09-04-2005 à 20:55:08
Euh c'est une bonne raison .... Alors j'ai trouvé un truc qui devrait me satisfaire :
INSERT INTO...VALUES ... ON DUPLICATE KEY UPDATE ...
Bon normalement ça devrait marché mais ça me retourne une erreur de syntaxe sur la ligne '6' ... Comment ça se debugge ça ...
La ligne '6' c'est dans mon code PHP, sur les tables My SQL ... ?????
Marsh Posté le 09-04-2005 à 21:06:09
KangOl a écrit : je pense que dans ton cas, il vaux mieux que tu utilises replace... |
Marsh Posté le 09-04-2005 à 21:17:51
Nan nan nan .... J'ai trouvé mes problémes
Bon d'abord si dans ma syntaxe MySQL j'oublie le "UPDATE" de ON DUPLICATE KYE "UPDATE" c'est sur que je vais avoir une erreur de syntaxe ...
Bon voila ma requete finale qui repond exactement à ce que je voulais faire à savoir :
Citation : |
Code :
|
J'ai 23champs et ça marche du fue de dieu...
MErci pour ton lien Kangol parce que c'est en lisant les commentaires dessous la description de la fonction que j'ai pu accéder à cette fonction qui me convient parfaitement
Marsh Posté le 09-04-2005 à 21:18:32
non mais je suis en mode furtif ou quoi ??
Marsh Posté le 09-04-2005 à 21:31:38
Pourquoi ça ? Qu'est ce que tu veux dire par là ?
J'en profite pour lacher le lien du manuel de reference MySQL :
http://dev.mysql.com/doc/mysql/en/insert.html
et j'en profite pour poser une nouvelle question :
J'alimente mon formulaire à partir de ma bdd jusque là pas de soucis .... Sauf pour les balises <Select> j'ai bien une valeur ds ma table qui correspond à une <option> mais comment faire pour que cette option soit "selected" en fonction de l'entrée présente ds ma bdd ????
En gros c'est un formulaire de modification donc je voudrai que l'utilisateur retrouve exactement ce qu'il a rentré la première fois ...
Marsh Posté le 10-04-2005 à 12:17:22
belay a écrit : Pourquoi ça ? Qu'est ce que tu veux dire par là ? |
je reprend ce qu'il y a marqué dans l'aide de mysql...
REPLACE works exactly like INSERT, except that if an old record in the table has the same value as a new record for a PRIMARY KEY or a UNIQUE index, the old record is deleted before the new record is inserted. |
belay a écrit : |
en gros tu fait une boucle pour afficher tous tes <option>
bin dans cette boucle tu fait un if(option en cours == option choisie) echo " selected";
Marsh Posté le 09-04-2005 à 13:40:47
Bon voila j'ai fais un formulaire (qui marche ne plus ) qui alimente une table....
Lorsque l'utilisateur affiche se formulaire deux options se présente à lui :
1. C'est la premiére, il le remplit pr la premiere fois
2. Il le met à jour et donc il a deja remplit le formulaire
Tout ça se fait avec la mm interface :
Evidemment si on est ds le cas N°2 , je me retrouve ac une error de type "Mysql ne peu pas ajouter les valeurs parce que l'entrée existe déjà " (c'est l'esprit de l'erreur )....
Bon tout est logique jusque là... Je cherche juste un moyen pour :
-> soit faire un check de ma clé primaire pour vérifier si elle existe ou pas (en gros parcourir une colonne à la recherche d'une valeur). ET dans ce cas y -a-til une fonction php ou MySQL existante.
-> soit faire un truc du style: "SI MYSQLERREUR type=duplicate_clé_primaire THEN....". Sachant qu'utiliser Mysql_error() ets trop vaste....
Merci pour votre aide précieuuuuuuuuuuuuuuuuuuuuse
Message édité par belay le 09-04-2005 à 21:37:20