liaison entres deux tables

ricardo
Invité n'ayant pas de compte PHPfrance

24 avr. 2005, 22:02

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

ViPHP
ViPHP | 1380 Messages

24 avr. 2005, 22:08

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
ripat

Mammouth du PHP | 19672 Messages

24 avr. 2005, 23:57

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ricardo
Invité n'ayant pas de compte PHPfrance

25 avr. 2005, 12:43

Ok merci pour les infos.

ricardo
Invité n'ayant pas de compte PHPfrance

25 avr. 2005, 21:24

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

Mammouth du PHP | 19672 Messages

25 avr. 2005, 21:32

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ricardo
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 07:42

OK mais comment faire alors ?

Merci

Mammouth du PHP | 19672 Messages

26 avr. 2005, 08:08

Comment faire quoi ? pose les paramètres du problème et on aura une chance de t'offrir une réponse...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ricardo
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 12:35

J'essaye et en cas de problème je vous appelle.

Merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 avr. 2005, 13:51

Il est fort ricardo !!! Il va essayer un question que Cyrano lui a posé !!!! :lol:

Non, serieusement, je vois pas ce que tu vas essayer !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ricardo
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 18:56

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

ViPHP
ViPHP | 2144 Messages

27 avr. 2005, 09:23


ricardo
Invité n'ayant pas de compte PHPfrance

27 avr. 2005, 21:02

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 ?

Mammouth du PHP | 19672 Messages

27 avr. 2005, 21:04

Validation de formulaire, la marche à suivre ICI
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: