Jointure SQL

Résolu/Fermé
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
- 4 avril 2011 à 08:40
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
- 10 avril 2011 à 10:56
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

chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
4 avril 2011 à 12:37
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..
0
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
4 avril 2011 à 15:44
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
0
chico200987
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
Modifié par chico200987 le 4/04/2011 à 17:06
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 !
0
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
4 avril 2011 à 18:53
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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 );
0
troubadour2
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
10 avril 2011 à 10:56
Bonjour

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