我正在尝试根据标签(单字标签)为我们的新闻创建“相关文章”。如果一个故事标有3个标签,我希望能够为每个标签提取最新的条目,按日期排序,并仅显示最近的5个。
这是我正在尝试的,显然不起作用,因为它用它经过的最后一个标记覆盖数组变量$ pullRelated。由于我被困在那里,我不知道如何按日期排序所有条目,然后只显示最近的5.任何帮助表示赞赏。谢谢!
foreach ($tags as $t) {
$pullRelated = mysql_query("SELECT * FROM posts WHERE MATCH(tags) AGAINST ('$t') AND status >= 2 AND newsID != $newsID ORDER by postDate DESC LIMIT 5");
}
while($related = mysql_fetch_array($pullRelated)) {
echo $related['postTitle']." ".date("M j, Y",$related['postDate'])."<BR>";
}
答案 0 :(得分:3)
为什么不直接使用MySQL FULL TEXT索引布尔模式?
$str = '';
foreach ($tags as $t)
$str .= '+'.$t.' ';
$q = mysql_query("SELECT * FROM posts WHERE MATCH(tags) AGAINST ('$str' IN BOOLEAN MODE) AND status >= 2 AND newsID != $newsID ORDER by postDate DESC LIMIT 5");
while($related = mysql_fetch_array($q))
echo $related['postTitle']." ".date("M j, Y",$related['postDate'])."<BR>";