KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 07 avril 2004 - 10 h 33 m 48 s |
|
|
Je vous embette encore avec PHP/MySQL.
Je voulais savoir la syntaxe correcte pour représenter mes identifiants relatifs sous MySQL.
Faut-il que je mette :
CREATE TABLE COMMENTAIRE
(
no_comm, no_news INTEGER(10) NOT NULL,
....
....
PRIMARY KEY (no_comm, no_news),
FOREIGN KEY (no_utilisateur) REFERENCES UTILISATEUR
);
???
|
|
| |
Message édité 1 fois, la dernière par Erel69 le 05 mai 2004 - 10 h 29. |
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
grabber
Coordinateur
MacBook Pro 2,4 Powered
Messages : 8 593 Inscrit le 06/03/02
Ville : Angers
Non connecté
|
|
Posté le 09 avril 2004 - 13 h 47 m 19 s |
|
|
pas de cles etrangeres dans mysql !!! re...
|
|
| |
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 18 avril 2004 - 12 h 06 m 07 s |
|
|
|
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
Erel69
206 (¯`·.__[T3aM.L1b3rTe©]__.·´¯)
Messages : 19 449 Inscrit le 07/11/01
Ville : Lyon
Non connecté
|
|
Posté le 20 avril 2004 - 01 h 40 m 34 s |
|
|
les FOREIGN KEYS n'existe pas sous mysql
|
|
| |
Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...
|
DeVice
Boulet occasionel...
Messages : 3 022 Inscrit le 12/03/03
Ville : Grenoble
Non connecté
|
|
Posté le 20 avril 2004 - 12 h 07 m 02 s |
|
|
Si tu as besoin d'un SGBD libre qui fasse ça, je crois que PostgreSQL est ton sauveur.
Après vérification : oui c'est possible !
|
|
| |
Règle N°1 du forumeur : "Ta souris 7 fois autour du bouton poster tu tourneras, ainsi moins pour un âne de passer tu risqueras"
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 21 avril 2004 - 12 h 21 m 04 s |
|
|
Justement, si seulement je pouvais utiliser PostGreSQL.... malheureusement je me contente de bosser sur les serveurs Free qui possèdent PHPMyAdmin.. et donc MySQL.. hum g quand même laissé mes clés étrangères, jvais bosser comme en SQL. Mais alors comment pouvez-vous faire les jointures entre tables si vous ne possédez pas de clés étrangères ?
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 21 avril 2004 - 13 h 31 m 22 s |
|
|
Tu peux faire une jointure sur n'importe quel champ, non ?
|
|
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 21 avril 2004 - 13 h 41 m 25 s |
|
|
je pense, à condition qu'ils soient identiques. Ce que je voulais dire, c'est que pour faire une jointure entre une table UTILISATEUR et MESSAGE par exemple, il faudra bien faire le lien entre l'identifiant Num_User de UTILISATEUR (par exemple) et la clé étrangère #Num_User dans MESSAGE. Sinon je vois mal comment faire une jointure, à moins que dans la table MESSAGE, le Num_User soit un champ normal, identique à celui de la table UTILISATEUR.
Je vois plus la chose ainsi :
TABLE UTILISATEUR
---------------------------
Num_User
Pseudo_User
MdpUser
etc.
TABLE MESSAGE
-----------------------
Num_Message
Libelle_Message
Contenu_Message
Num_User
|
|
| |
Message édité 1 fois, la dernière par KibitO le 21 avril 2004 - 13 h 43. |
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
lyght
Messages : 12 Inscrit le 30/09/03
Ville : [42] Saint Cham'
Non connecté
|
|
Posté le 21 avril 2004 - 16 h 10 m 14 s |
|
|
Je ne vois pas trop ton problème... Sur les 2 tables que tu viens de décrire, pour faire ta jointure, tu fais ça avec tes mimines, exemple, pour récupérer tous les messages du user 1 :
SELECT * FROM Utilisateur, Message
WHERE Utilisateur.Num_User = 1
AND Message.Num_User = Utilisateur.Num_User;
Bien sûr, il faut aussi que les champs Num_User des 2 tables soient du même type (peut-être même seulement Numérique/Numérique, à confirmer...).
Concernant mon exemple, tu peux aussi t'emmerder avec le mot-clé SQL JOIN, genre comme ça :
SELECT *
FROM Message LEFT JOIN Utilisateur ON Message.Num_User = Utilisateur.Num_User
WHERE Utilisateur.Num_User = 1;
Je dois avouer que je ne suis plus très sûr de la syntaxe du JOIN mais bon, je te laisse le soin de chercher sur mysql.com...
Enfin, dernière chose : si l'association que tu voulais créer entre les 2 tables devait servir "l'intégrité référentielle" de ta base, effectivement, là MySQL ne peut plus rien pour toi...
Euh... J'espère que j'ai été clair... Ca t'a aidé ? :-)
|
|
| |
|
KibitO
Betty Boop ma chérie je t\\\'aime plus que tout !!
Messages : 1 715 Inscrit le 22/02/02
Ville : Chassagny
Non connecté
|
|
Posté le 21 avril 2004 - 20 h 27 m 43 s |
|
|
Oui je vois à peu près ta façon de bosser. Le souci avec ton exemple, c'est que tu inclu le chiffre 1 dans ta requete. Je te rappelle que lorsque tu écris ou exécute une requete, tu n'es pas censé connaitre le contenu de la base. Bon ben je vais rester finalement sur mon idée de départ, avec mes clés étrangères même si cela ne sert à rien, au moins ça marche.
En tout cas merci pour vos aides.
|
|
| |
KibitO Piccoloo Porto
Ooooohhhhoooohohohoh I Love U So, Oooooohohohohooohohoooooo I Need You So
(© Wampas)
!! DefraK !!
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 21 avril 2004 - 21 h 39 m 14 s |
|
|
Enleves la reference au num_user=1 et ca marche quand meme ....
T'as PAS BESOIN de cle etrangere pour faire une jointure ....
Ou autrement dit une jointure ne se fait pas forcement sur une cle etrangere ..
|
|
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
lyght
Messages : 12 Inscrit le 30/09/03
Ville : [42] Saint Cham'
Non connecté
|
|
|
| |
|