Formulaire multiselection

infernal35 - 25 nov. 2014 à 14:36
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 25 nov. 2014 à 16:04
Bonjour, les ami(e)s
je suis débutant dans le php, j'essaie de créer une application pour le gestion des courriers. et je rencontre des difficultés.

j'ai deux tables dans phpmyadmin
courriers (id, référence , expéditeur ,date,action);
action(id,N_action,libelle action) ;

dans le formulaire courrier je souhaite appliquer plusieurs actions, sans faire de réplication dans la table courrier. a l'aide d'une table jointure.
si vous pouvez m'indiquer les étapes a suivre par un petit exemple svp.

2 réponses

mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 4
Modifié par mpmp93 le 25/11/2014 à 15:58
Bonjour,

Insérez une ou plusieurs actions. Le INSERT c'est du mySql et n'a pas besoin de jointure....

Votre table:
action(id,N_action,libelle action) ;

est mal structurée....

devrait contenir un champ supplémentaire:
action(id,id_courrier,libelle action) ;

le premier champ id est un index auto-incrémenté
le second, id_courrier fait référence à id de votre table courrier....

Exemple, vous avez un courrier avec id = 3, vous rattachez trois actions:

action(1,3,"envoyé le 27 oct 2014") ;
action(2,3,"reçu par client le 29 oct 2014") ;
.......
action(45,3,"réponse du client le 17 nov 2014") ;



A+
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 25/11/2014 à 16:05
Bonjour,


j'ai deux tables dans phpmyadmin
courriers (id, référence , expéditeur ,date,action);
action(id,N_action,libelle action) ;

phpmyadmin est un "outil" qui permet de manipuler les bases de données (mysql)...

Donc.. en fait .. tu as deux tables dans TA BASE DE DONNEES.

dans le formulaire courrier je souhaite appliquer plusieurs actions, sans faire de réplication dans la table courrier

Tu veux dire qu'un COURRIER peut avoir N ACTIONS ?

Tu as donc inversé l'emplacement de tes champs...
tu retire la colonne "action" de ta table "courrier"
tu ajoutes une colonne "id_courrier" dans ta table "action" :
courriers (id_courrier, référence , expéditeur ,date);
action(id_action,N_action,libelle action,id_courrier) ;


la jointure (pour le select se faisant donc de la façon suivante :
SELECT * 
FROM action A
LEFT JOIN courriers  C ON C.id_courrier = A.id_courrier

Cette requête te donnera toutes les actions avec.. sur la même "ligne" les informations du courrier...

Tu peux bien sûr la filtrer .. sur un courrier précis par exemple, en ajoutant un WHERE

WHERE C.id_courrier = "15"



Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
Rejoignez-nous