私は他の人の助けを借りて作られたこのSQLを持っています。
$sql ="
select e.*, i.*, group_concat( t.tag separator ',') as tag_list
from nv_entries e
JOIN nv_tags t on t.entrie_id = e.id
LEFT JOIN nv_images i on i.entrie_id = e.id
where t.tag in ( $tag_list )
group by e.id
having count(t.id) = $num_tags ";
結果は次のとおりです(ここでは1つのエントリのみを表示しますが、それ以上になる可能性があります)。
[1] => Array
(
[id] => 2
[band] => Kids for Cash
[album] => No More Walls E.P.
[label] =>
[year] => 1986
[text] => Text about album kids for cash.
[entrie_id] => 2
[source] => img02_9lch1.png
[tag_list] => tree
)
タグについては、エントリが持っているすべてのタグを表示し、結果を取得するために使用されたタグを強調表示する必要があります。この場合[tag_list] => tree
、検索フィールドで使用されたタグが1つだけ表示されます。私の質問は、どうすればこのような結果を得ることができますか?:
...
[tag_list] => tree, green, foo, bar
[used_tags] => tree
)
配列としても良いのですが、1つだけの場合は配列もお願いします。