[Formulaire] Liste déroulante qui défini plusieurs champs

  • Auteur de la discussion Auteur de la discussion Grantome
  • Date de début Date de début
G
Grantome
Guest
Bon, un nouveau problème, toujour sur les formulaires.

Je souhaiterais qu'un liste déroulante me renseigne le champs de la liste (normal), plus 3 autre champs caché à l'utilisateur.

Exemple:

Liste déroulante avec nom de pilote de F1 + 1 champ "chrono"
Je choisi un nom, je remplis le champ "chrono", et lors de l'insert dans ma table, les champs hidden "pays", "ecurie", "chassis" soient automatiquement inseré.

Merci :wink:
 
WRInaute discret
Ca s'est a faire dans la db pas dans le html. un petit SQL du type:
INSERT INTO table1 (nom, chrono, pays, ecurie, chassis )
SELECT '$nom','$chrono', pays, ecurie, chassis FROM table2
WHERE nom='$nom';
:wink: Prepare la monnaie !!!
 
G
Grantome
Guest
...

Nan, c'est pas ça.... :)

Je m'explique.
Exemple
J'ai une table : pilote
avec les champs suivants: Nom, Ecurie, Chassis
Les champs sont déjà tous renseignés grâce à un formulaire.

Je souhaite renseigner une autre table: Course grâce à un formulaire.
Dans cette table, je dois renseigner les champs suivants: Nom, Ecurie, Chassis, Temps, Classement.

Seulement, je ne veux pas à avoir à rentrer à nouveau les même champs que ceux de la table Pilote.
Je cherche donc à faire un formulaire, qui me propose 2 champs texte Temps et Classement ainsi qu'un champs Nom en liste déroulante.
Grâce à cette liste, je souhaite en choisissant un nom, renseigner en hidden les champs Ecurie, et Chassis.
Et INSERT INTO tout ça dans ma table Course.

Voilà.
 
WRInaute discret
Je n'ai pas de solution concrète. Mais c'est une très mauvaise solution de dupliquer les données dans ta base. Tu es sur que des foreign keys ne seraient pas plus adaptées ?
 
WRInaute occasionnel
En faisant un select avant ton insert ?

Tu rentre nom, temps et classement
Tu fais un select * from pilote where pilote = nom
Et tu fais un insert nom, temps, classement, et ce qui est issu du select

Ceci dit, comme dit kalex, pourquoi vouloir dupliquer ecurie et chassis aussi dans la table course ?
 
WRInaute discret
C'est très exactement ce que je proposais:

INSERT INTO course (nom, chrono, pays, ecurie, chassis )
SELECT '$nom','$chrono', pays, ecurie, chassis FROM pilote
WHERE nom='$nom';

Note la différence entre '$nom' et pays par exemple.
'$nom' -> un string venant du form
pays -> le nom de la colonne de la table pilote

Ca devrait marcher.
 
WRInaute discret
Re: ...

Grantome a dit:
Peut être, mais je n'y ai jamais rien compris... :roll:
Par exemple, tu pourrais faire deux tables, comme ceci :

Table pilote :
ID | NOM | ECURIE | CHASSIS
(ID est un chiffre unique, incrémenté de 1 à chaque insertion)

Table course
TEMPS | CLASSEMENT | ID_PILOTE
(ID_PILOTE se rapporte, à l'ID de la table pilote)

La requête pourrait ressembler à ceci :
SELECT * FROM course LEFT JOIN pilote ON course.ID_PILOTE = pilote.ID

Ainsi, tu éviterais de dupliquer les informations, ce qui est presque toujours une mauvaise chose.
 
G
Grantome
Guest
Ahhhh ok, autant pour moitradjus, j'avais pas compris.

Ta petite affaire et à peu près ce que javais fait, mais je pensais qu'il existait une méthode plus direct.

Quand aux Foreign Keys, c'est en effet pas, mal, mais leur utilisation aurait du être faites dès le début... now, ç'est un peu tard :-) Tanpis.

Merci à tous. Tout est ok.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut