我的MySql数据库中有一个表:
pageid | text
-----------+----------
1 | test
-----------+----------
2 | example
-----------+----------
3 | another
-----------+----------
1 | example1
和这个PHP代码:
$query = "SELECT pageid FROM test";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
$id = $row['pageid'];
$id1 = array($id);
$id2 = array_unique($id1);
foreach ($id2 as $value)
{
echo $value . "<br>";
}
}
但它返回:
1
2
3
1
我想让pageid
独一无二。所以我想回忆一下1
号码。像这样:
1
2
3
那么我做错了什么?我怎么能实现我想要的呢?
提前致谢...
[我知道这段代码没有多大意义,但这只是这个问题的一个演示,我有一个更复杂的代码:)]
答案 0 :(得分:4)
当然,在这种情况下,真正的答案是选择不同的记录开始:
$query = "SELECT DISTINCT pageid FROM test";
但是为什么你的代码不起作用......
您将$id1
声明为数组,但不附加到数组。相反,你每次只是创建一个1元素数组。相反,请附加所有结果,然后调用array_unique()
$query = "SELECT pageid FROM test";
$result = mysql_query($query);
// Declare array first
$id1 = array();
while($row = mysql_fetch_array($result))
{
$id = $row['pageid'];
// Append to the array...
$id1[] = $id;
}
// Call array_unique() outside the loop:
$id2 = array_unique($id1);
foreach ($id2 as $value)
{
echo $value . "<br>";
}
答案 1 :(得分:0)
您可以通过SELECT
或SELECT DISTINCT pageid FROM test
之类的操作在GROUP BY
中执行此操作:
SELECT pageid FROM test WHERE 1 GROUP BY pageid
答案 2 :(得分:0)
您可以在sql查询中使用Distinct关键字。这将为您返回Page的唯一值v