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
。重複
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
。重複
$array = array();
foreach ($results as $row) {
foreach (explode(' ', $row['tags']) as $word) {
$array[$word] = $word;
}
}
SELECT DISTINCT
私は、あなたが探していることはMySQLではGROUP BY演算子だと思います。あなたはこのようにそれを使用することができます。
SELECT * FROM xxx GROUP BY tags
ある任意のSQLの結果を含めないように
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);
結果は$unique
のarray_keys()
です。
これで問題が解決する場合があります。 id
がtag
と1対多の関係を持つように、デザインを再考し、テーブルレイアウトを変更することをお勧めします。
*最後に*誰か**理解**の質問。 –
'foreach($行としての$結果){'は 'while($行= mysql_fetch_array($結果)){' – cj333