2012-03-15 4 views
0
id | tags 
1 | photo article 
2 | blog article 
3 | blog 
4 | logs 
5 | photo article 
6 | comment article 

すべてwordsを取得する方法tagsを繰り返すのですか?php mysql get un repeatの値を

印刷したいphoto article blog logs comment。重複

答えて

3
$array = array(); 
foreach ($results as $row) { 
    foreach (explode(' ', $row['tags']) as $word) { 
    $array[$word] = $word; 
    } 
} 
+0

*最後に*誰か**理解**の質問。 –

+0

'foreach($行としての$結果){'は 'while($行= mysql_fetch_array($結果)){' – cj333

0

SELECT DISTINCT私は、あなたが探していることはMySQLではGROUP BY演算子だと思います。あなたはこのようにそれを使用することができます。

SELECT * FROM xxx GROUP BY tags

-1

ある任意のSQLの結果を含めないように

1

tagsはあなたのレイアウトの実際のタグをスペースで区切ったリストであることが表示されます。 SELECT DISTINCTまたはarray_unique()を使用すると、テーブルにエントリがあるのと同じ結果が生成されることがあります。

このコードは、あなたのユニークな結果を得る必要があります。

$q = mysql_query('SELECT `tags` FROM `table`'); 
$unique = array(); 

while (FALSE !== ($row = mysql_fetch_assoc($q))) 
{ 
    $tags = explode(' ', $row['tags']); 
    foreach ($tags as $tag) 
    { 
     $unique[$tag] = 1; 
    } 
} 

mysql_free_result($q); 

結果は$uniquearray_keys()です。


これで問題が解決する場合があります。 idtagと1対多の関係を持つように、デザインを再考し、テーブルレイアウトを変更することをお勧めします。