Jointure SQL [Résolu/Fermé]

Signaler
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
-
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
-
Bonjour,

Je n'ai jamais fait des jointures SQL, comme je débute, malheureusement je n'arrive pas à comprendre les infos que j'ai trouvé sur le net.
Pouvez-vous me guider un peu je vous remercie de tout coeur.
Je vous donne mes 3 tables.
Je voudrais pouvoir INSERT dans la table "utilisateur_vetement" que ça enregistre l'id de l'utilisateur correspondant au id de la table vetement.
Merci

CREATE TABLE IF NOT EXISTS 'utilisateur' (
  'id_utilisateur' int(11) NOT NULL AUTO_INCREMENT,
  'nom_utilisateur' varchar(50) NOT NULL,
  'prenom_utilisateur' varchar(50) NOT NULL,
  PRIMARY KEY ('id_utilisateur')
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=302 ;


CREATE TABLE IF NOT EXISTS 'vetement' (
  'id_vetement' int(11) NOT NULL AUTO_INCREMENT,
  'nom_vetement' varchar(50) NOT NULL,
  PRIMARY KEY ('id_vetement')
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

--
-- Contenu de la table 'vetement'
--

INSERT INTO 'vetement' ('id_vetement', 'nom_vetement') VALUES
(1, 'Veste'),
(2, 'Pantalon'),
(3, 'Jupe'),
(4, 'Polo'),
(5, 'Cravate'),
(6, 'Ceinture');


CREATE TABLE IF NOT EXISTS 'utilisateur_vetement' (
  'fk_id_utilisateur' int(11) NOT NULL,
  'fk_id_vetement' int(11) NOT NULL,
  KEY 'utilisateur_vetement' ('fk_id_utilisateur')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

6 réponses

Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
141
Tu peux essayer de faire quelque chose comme :

INSERT INTO 'utilisateur_vetement' ('fk_id_utilisateur', 'fk_id_vetement') VALUES (
(SELECT 'id_utilisateur' FROM 'utilisateur' WHERE nom_utilisateur = "test" AND prenom_utilisateur = "icules"),
(SELECT 'id_vetement' FROM 'vetement' WHERE nom_vetement = "Veste"))


A condition que l'utilisateur existe deja..
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
Bonjour Merci de votre aide.
J'ai essayé mais ça ne marche pas, en fait il faudrait que dans ma BDD j'ai,
Mes 2 colonnes avec l'id de l'utilisateur qui est déjà dans la BDD et l'id du vetement correspondant.

fk_id_utilisateur  fk_id_vetement

1                          2
4                          5
etc...                    etc...

Et pour l'affichage j'ai les chekbox avec les 6 noms de vetement.
<input name="user_vetement" id="vetement" type="checkbox" value="true" <?php echo (@$rows->jupe_vetement) ? " checked":"";?>/></td>

Merci
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
141
Salut,

Il faudrait en fait plus d'info sur ton formulaire car je ne comprends pas bien.

Tu as un formulaire qui comprend des checkbox contenant la liste des vetements de la base d'accord.

Ensuite ? L'utilisateur tu le connais comment ? Il existe dans la base ok mais tu le recuperes comment ? C'est celui qui coche ses propres vetements ? Ou ton formulaire permet d'attribuer des vetements a tous les users de la base ou a un seul user specifique ?

Need light !
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
Bonjour

En fait c'est moi qui attribut les vetements des membres déjà dans ma BDD via un formulaire contenant les checkbox.

Les membres je les ai déjà enregistré auparavant.
Merci
DELETE 'utilisateur_vetement'.* FROM 'utilisateur_vetement' WHERE 'fk_id_utilisateur' = 1;

INSERT INTO 'utilisateur_vetement'
( fk_id_utilisateur, fk_id_vetement )
SELECT utilisateur.id, vetement.id FROM utilisateur, vetement
WHERE utilisateur.id = 1 AND vetement.id IN ( 3,5,6 );
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
Bonjour

Avec quelques jours de retard je te remercie pour ton aide ça fonctionne nickel.
Merci encore