Page 1 sur 1
liaison entres deux tables
Posté : 24 avr. 2005, 22:02
par ricardo
Bonsoir a tous,
Sur le site d'une association dont je suis le webmaster, je suis en train de faire une rubrique annonce, avec pour l'internaute la possibilité de se créer un "espace annonce" par connexion avec un login.
Je pensais créer une table login avec deux champs : nom d'utilisateur et mot de passe.
Puis une deuxième table annonce avec 4 champs plus les deux champs de ma table login.
Est-ce possible ? Comment faire la liaison entre les deux tables ?
Merci
Posté : 24 avr. 2005, 22:08
par Ripat
Très simplement avec une jointure. Par exemple:
Code : Tout sélectionner
SELECT table1.id, table2.col
FROM table1
JOIN table2 ON table1.id = table2.id
WHERE liste_de_conditions
ORDER BY ce_que_tu_veux
Posté : 24 avr. 2005, 23:57
par Cyrano
J'irais un peu plus loin en expliquant que le lien entre la table login et la table annonce, c'est que la clé primaire de la table login doit être présente aussi dans la table annonce en clé étrangère: en clair, la table login doit avoir les deux champs mentionnées plus un champ id_login en clé primaire, quoique ce soit facultatif si on met le login en clé primaire, mais ça implique un nom de login unique, sans doublons. La seconde table, annonce aura donc les champs texte de l'annonce plus un champ id_login (ou nom_login selon le choix fait précédemment). La seconde table peut aussi avoir un champ date (date de l'annonce pour prévoir une simplification de classement).
Ce qui revient à dire : table login 2 (ou 3) champs;
table annonce : 2 champs, 3 avec la date en plus.
Et les requêtes se feront comme l'a énoncé Ripat
Posté : 25 avr. 2005, 12:43
par ricardo
Ok merci pour les infos.
Posté : 25 avr. 2005, 21:24
par ricardo
Encore une petite question :
Dans ma rubrique annonce, l'internaute aura accès a ses annonces afin de pouvoir les modifiers ou les supprimers, est-ce possible de créer un champs qui s'incrémente tout seul lors d'un ajout d'une annonce ou qui se decrémente lors d'une suppression d'une annonce.
Dans quelles tables faut-il mieux mettre ce champs (login ou annonce).
Comment faire?
Merci
Posté : 25 avr. 2005, 21:32
par Cyrano
L'incrémentation d'un champ identifiant peut être automatique si tu configures ta table comme ça au départ, mais tu ne pourras jamais décrémenter
Si tu veux pouvoir compter les annonces, tu n'as pas besoin d'un champ supplémentaire, tu peux tout obtenir par requête SQL
On ne met en principe jamais de champ calculé dans un base de données, ça prend de la place pour rien et ça cause plus de soucis de programmation ensuite qu'autre chose
Posté : 26 avr. 2005, 07:42
par ricardo
OK mais comment faire alors ?
Merci
Posté : 26 avr. 2005, 08:08
par Cyrano
Comment faire quoi ? pose les paramètres du problème et on aura une chance de t'offrir une réponse...
Posté : 26 avr. 2005, 12:35
par ricardo
J'essaye et en cas de problème je vous appelle.
Merci
Posté : 26 avr. 2005, 13:51
par zeus
Il est fort
ricardo !!! Il va essayer un question que
Cyrano lui a posé !!!!
Non, serieusement, je vois pas ce que tu vas essayer !!!
Posté : 26 avr. 2005, 18:56
par ricardo
J'ai oublié de vous dire que je voulais gérer tout ça avec phpmyadmin.
Est-ce possible ?
Comment récupérer les valeurs d'un formulaire pour les enregistrer dans la table ?
Merci
Posté : 27 avr. 2005, 09:23
par iclo
Posté : 27 avr. 2005, 21:02
par ricardo
Donc voila,
J'ai créer ma table login avrc 4 champs:
- id_login avec incrémentation automatique
- nomutilisateur
- motdepasse
- email
Avec le code ci-dessous aucun pb je récupère les données de mon formulaire pour les intégrer dans ma table login :
$<?
// on récupère les données POST
$nomutilisateur = $_POST["nomutilisateur"];
$motpasse = $_POST["motpasse"];
$email = $_POST["email"];
mysql_query("INSERT INTO login (nomutilisateur, motpasse, email)".
" VALUES ('$nomutilisateur ', '$motpasse', '$email') ") ?>
Maintenant j'aimerais effectuer différents tests en plus :
- tester si tous les champs sont renseignés, si non message.
- tester si les champs n'existent pas déjà .
Je vois pas comment faire Merci pour votre aide ?
Posté : 27 avr. 2005, 21:04
par Cyrano
Validation de formulaire, la marche à suivre
ICI