Combiner plusieurs recherches de tables en PHP avec MySQL et un mot-clé
Vous disposez d'une base de données avec trois tables : messages, sujets et commentaires. Chaque table contient deux champs, « contenu » et « titre ». Votre objectif est d'effectuer une requête de recherche unique qui recherche dans les six champs (messages.content, messages.title, topic.content, topic.title, comments.content, comments.title) à l'aide d'un mot-clé spécifié.
Pour ce faire, modifiez votre requête pour utiliser plusieurs instructions UNION. Chaque instruction UNION recherchera dans une table spécifique à l'aide de l'opérateur LIKE le mot-clé dans les champs « contenu » et « titre ». La requête mise à jour suivante combine les trois recherches :
$query = "(SELECT content, title, 'msg' as type FROM messages WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%') UNION (SELECT content, title, 'topic' as type FROM topics WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%') UNION (SELECT content, title, 'comment' as type FROM comments WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%')"; mysql_query($query);
Cette requête utilise l'opérateur UNION pour combiner les résultats de chaque instruction SELECT en un seul jeu de résultats. Le champ « type » ajouté indique de quelle table provient la ligne.
"msg" = messages table "topic" = topics table "comment" = comments table
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!