PHP/Mysql拉取5个相关故事

PHP/Mysql拉取5个相关故事,php,mysql,tags,Php,Mysql,Tags,我们在我们的新闻帖子中添加标签(我们使用我们自己的CMS),我想根据每个故事使用的标签来拉5个相关的故事。我们在数据库中有用空格分隔的标记,所以我使用这段代码将标记放入一个数组中 $tags = explode(" ", $tags); 现在我们有了数组中的标记,我想用它们从数据库中提取相关的故事 foreach($tags as $t) { $pullRelated = mysql_query("SELECT * FROM `posts` WHERE `tags` LIKE '%$t

我们在我们的新闻帖子中添加标签(我们使用我们自己的CMS),我想根据每个故事使用的标签来拉5个相关的故事。我们在数据库中有用空格分隔的标记,所以我使用这段代码将标记放入一个数组中

$tags = explode(" ", $tags);
现在我们有了数组中的标记,我想用它们从数据库中提取相关的故事

foreach($tags as $t) {
    $pullRelated = mysql_query("SELECT * FROM `posts` WHERE `tags` LIKE '%$t%' AND `newsID` != '$newsID' LIMIT 5");
问题是,如果有3个标签,它将显示15个相关的故事(每个标签5个)。我想要的是,如果有2个、3个、4个或5个标签,显示来自所有标签的故事的混合,但仍然只显示5个故事

建议?

因此,您在posts表中将标记(关键字、类别)作为空格分隔的字符串保存

关于这一点,除了你需要规范化你的设计之外,没有什么可以说的了,这将缓解你的所有问题,并使你的应用程序更有效地判断你到目前为止所展示的

沿着这条路线走下去就足够了: