As-tu déjà vu un contact avoir pour nom 24 et prénom Paul? Retournes vite dans tes cahiers. Il s'agit du BABA et la modélisation.
Version imprimable
As-tu déjà vu un contact avoir pour nom 24 et prénom Paul? Retournes vite dans tes cahiers. Il s'agit du BABA et la modélisation.
Désolé mais ca fait que 6 mois que j'apprends ces langages donc ce n'est pas évident de tout retenir d'un coup !
Donc, je vais créer un autre champs afin de pouvoir les connectés mes tables. Mais je pense pas que ca va changer mon problème.
Oooh que si!Citation:
Mais je pense pas que ca va changer mon problème.
Bon voila j'ai changer j'ai rajouté un champs dans mes tables pour que ce soit cohérent :
Table 1 : contact
Champs : nom / prenom / numero / interaction/ code_interaction/ code_loge
Table 2 : interaction
Champs: commentaire / reponse / date / lieux/ code_interaction
Table 3: loge
Champs : adresse / ville / region / pays/ code_loge
J'ai rajouter aussi dans ma requête mais ca change rien a mon problème.
(oui j'ai remit "nom" en vachard et les nouveaux champs en INT)
Est-ce que code_loge dans contact a des valeurs correspondantes à celle de code_loge dans loge?
interaction est en relation avec quoi?
Elle est où ta nouvelle requête?
Bonjour,
8O (6 jours, 6 heures,... OK. Mais 6 MOIS !! re-8O )
AVANT TOUTE CHOSE, il faut revoir (apprendre) LES BASES des tables SQL !!
1/ TRES IMPORTANT : Il te faut ajouter des INDEX (INT, CLE PRIMAIRE, AUTO-INCREMENTE)
Ce n'est pas "nom" qui peut servir à ça (d'abord parce que c'est un VARCHAR, et que plusieurs personnes peuvent avoir le même nom !)
Avantages des INDEX :
- ils s'incrémentent automatiquement (lors d'un INSERT, par ex.)
- ils sont forcément UNIQUES,
- donc identifient de manière sûre et certaine chaque ligne
- ils servent aux jointures
- ...
Table 1 : contact
- id_contact (INT, CLE PRIMAIRE, AUTO-INCREMENTE)
- nom
- prenom
- numero
- interaction
- id_interaction (INT, CLE ETRANGERE)
- id_loge (INT, CLE ETRANGERE)
Table 2 : interaction
- id_interaction (INT, CLE PRIMAIRE, AUTO-INCREMENTE)
- commentaire
- reponse
- date
- lieux
Table 3: loge
- id_loge (INT, CLE PRIMAIRE, AUTO-INCREMENTE)
- adresse
- ville
- region
- pays
2/ JOINTURES
Les jointures se font grâce aux INDEX des tables :
N.B. CC, II et LL sont des "alias" des noms des tables (ce qui évite de les recopier x fois, et rend la requête plus facile à lire)Code:
1
2
3
4
5
6
7 SELECT * FROM contact CC INNER JOIN interaction II ON CC.id_interaction = II.id_interaction INNER JOIN loge LL ON CC.id_loge = LL.id_loge WHERE .....
3/ RECHERCHE multi-critères, avec Requête préparée
ex.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // 1- requete $req = "SELECT .......... .......... WHERE CC.nom LIKE :nom OR CC.prenom LIKE :prenom OR LL.ville LIKE :ville ...." // 2- on prépare la requête $select = $bdd->prepare($req); // 3- on exécute, avec les paramètres de la recherche $result = $select->execute(array( ':nom' => '%'.$recherche.'%', ':prenom' => '%'.$recherche.'%', ':ville' => '%'.$recherche.'%', ));
Bonjour jreaux62, Nazoïde et badaze,
Je vous remercie pour votre aide!
Merci Nazoide grâce a toi j'ai mieux compris certaines choses.
Aujourd'hui ma requête fonctionne se n'est peut être pas la mieux mais pour le moment je vais laissé comme ca et continuer à apprendre afin de pouvoir ensuite l'améliorer.
Bonne journée à vous tous.
Merci du temps que vous avez pris pour m'expliquer les choses. :D