par
ouckileou » 17 août 2005, 23:34
là c'est simple
tu as tes deux tables documents et keywords, reliées par un champ id (clé primaire/clé étrangère)
tu veux les infos de l'une, correspondant aux critères de l'autre
donc dans le WHERE on filtre les lignes que l'on souhaite suivant un mot-clé
dans le SELECT on nomme les colonnes que l'on souhaite récupérer
et relie ces deux tables grâce à INNER JOIN et grâce aux deux champs "id" et "documentId"
INNER JOIN va dire que pour chaque ligne de la table documents qui a une ligne qui correspond dans la table keywords on prend, s'il n'y a pas de correspondance on ne prend pas
$requete = "
SELECT auteur, titre, dateCreation FROM documents d
INNER JOIN keywords k ON d.id = k.documentId
WHERE keyword = '".$keyword."'";
et comme tu le disais il est effectivement plus judicieux de faire un maximum de choses du coté du SGBD (récupération des requêtes, tri, filtrage...) car c'est beaucoup plus rapide
1 requête c'est mieux que 2
