1

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

だから私は何が間違っているのですか?どうすれば私が望むことを達成できますか?

前もって感謝します...

[このコードはあまり意味がないことは知っていますが、これはこの質問の単なるデモであり、はるかに複雑なコードがあります:)]

4

3 に答える 3

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>";
}
于 2011-12-13T18:13:45.283 に答える
0

SELECT次のようなことを行うか、次のようSELECT DISTINCT pageid FROM testに使用することで、自分の中でそれを行うことができますGROUP BY

SELECT pageid FROM test WHERE 1 GROUP BY pageid 
于 2011-12-13T18:13:09.797 に答える
0

SQLクエリでDistinctキーワードを使用できます。これにより、Pageの一意の値が返されます。

于 2011-12-13T18:15:44.960 に答える