我正在制作一个相关的故事部分,它使用一篇文章中的标签来浏览和查找其他带有类似标签的故事。
如果同一篇文章与另一篇文章共享多个标签,我想确保我不会多次删除同一篇文章。
所以基本上
foreach($tags as $t) {
$getStories = mysql_query("SELECT * FROM `posts` WHERE `tags` LIKE '%$t%' LIMIT 2");
while($related = mysql_fetch_array($getStories)) {
echo $related['title'];
}
所以我基于第一个标签拉了两个相关的故事,现在,当它在第二个标签的下一个循环中循环时,我如何确保上次拉的故事不会在第二次或第三次被选中。我有一个唯一的ID,叫做“ID”,只是不知道在这种情况下该怎么办。
谢谢!
最佳答案
你所能做的是一次获取所有相关文章:
$tagsClause = '';
foreach ($tags as $t) {
$tagsClause .= " OR tags LIKE '%$t%'";
}
$tagsClause = substr($tagsClause, 4); // Remove first ' OR '
$getStories = mysql_query('SELECT * FROM `posts` WHERE ' . $tagsClause);
while($related = mysql_fetch_array($getStories)) {
echo $related['title'];
}
但是,这并不说明您使用了
LIMIT
。编辑
显然这并没有造成问题,参考评论。