有没有办法只回应一次而不重复?

时间:2010-03-27 17:48:14

标签: php mysql

我有以下查询:

    $select = mysql_query("SELECT * FROM posts WHERE id = $postIds");

    while ($return = mysql_fetch_assoc($select)) {

        $postUrl      = $return['url'];
        $postTitle    = $return['title'];

        echo "<h1><a href='$postUrl'>".$postTitle."</a></h1>";

    }

现在的问题是,变量$postIds经常多次包含相同的id。所以帖子的标题回声多次。有没有办法让它只回显一次?

3 个答案:

答案 0 :(得分:0)

在您的查询中使用DISTINCT:SELECT DISTINCT url, title FROM posts WHERE id =

答案 1 :(得分:0)

http://php.net/manual/en/function.array-unique.php

你可以试一试。您可能需要进行检查以确保$postIDs是一个数组,否则您可能会收到警告错误。

答案 2 :(得分:0)

您希望输出所有帖子,但只输出一次标题?使用SELECT DISTINCT title, url FROM posts WHERE id = $postIds;查询

或者您只想要第一个匹配的记录输出?这里有两个选择:

  1. 向查询添加LIMIT子句:“SELECT * FROM posts WHERE id = $ postIds LIMIT 1”;
  2. 消除脚本中的while()循环,只需调用fetchrow一次。