Stackoverflowのように、タグごとにアイコンを表示したい。
table_icon と table_event という 2 つのテーブルが関連しています。
table_event は、発生したイベントを記録するためのものであり、もちろん各イベントへのタグです。table_tag はタグとアイコンを保存するためのものです。
table_icon の構造は次のとおりです。
tag_id
tag_name
icon (an url to an img)
table_event の構造は次のとおりです。
event_id
name
modtime
tag
table_event では、タグセルに「tag1,tag2,tag3」というタグが格納されています。
わかりやすくするために、ここに例を示します-
種目:「コービー・ガット・ハート」 関連タグ:コービー、レイカーズ、怪我
テーブルイベント:
event_id ---- 1
name -------- Kobe Bryant got hurt
modtime ----- Mar. 13, 2013
tag --------- Kobe,Lakers,injure
対応する table_tag: (事前に table_tag にこれらのデータがあるとします)
tag_id ------ 24
tag_name ---- Kobe
icon -------- .../icon/kobe.png
tag_id ------ 123
tag_name ---- Lakers
icon -------- .../icon/NBA_team_lakers.png
tag_id ------ 36
tag_name ---- injure
icon -------- .../icon/red_cross.png
これは、PHP で各タグを抽出する方法です。
... // Link to Db and table and call smarty.
$t_sql = mysql_query("SELECT * FROM event WHERE 1");
$id = array();
$name = array();
$tag = array();
$icon = array();
while($t_row = mysql_fetch_array($t_sql)){
array_push($id, $t_row['event_id']);
array_push($name, $t_row['name']);
$tag_array = explode(',', $t_row['tag']);
array_push($tag, $tag_array);
// Don't know how to extract icon for each tag.
}
$smarty->assign('tid', $tid);
$smarty->assign('name', $name);
$smarty->assign('tag', $tag);
$smarty->display('event.html');
なにか提案を?事前にthx!