我正在制作一个相关的故事部分,它使用一篇文章中的标签来浏览和查找其他带有类似标签的故事。
如果同一篇文章与另一篇文章共享多个标签,我想确保我不会多次删除同一篇文章。
所以基本上

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
编辑
显然这并没有造成问题,参考评论。

08-16 05:11