//データの選択
$sql = "SELECT work_location, COUNT(*) as num FROM org GROUP BY work_location";
$res = db_query($sql, $conn);
//データの出力
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
$array = array(
"work_location"=>$row["work_location"],
"num"=>$row["num"]
);
このコードをベースにSmartyに読み込ませています。
$row_l_num = get_location_count();
$smarty->assign("row_l_num", $row_l_num);
ここまではよいのですが、Smartyの.tpl側がうまく制御できていません。例えば○件が5件で登録されていると、その5が勝手に解釈され、地区名の5に値する「東京都件」となってしまうような感じです。
どういうふうコードを.tplで書けばよいのですか?教えてください。
最初に気になったのですが、以下ですと一つの配列しか$arrayには
入らないのですが大丈夫でしょうか?集計結果が一件しか無いのが
あらかじめわかっているのならOKです。
$array = array(
"work_location"=>$row["work_location"],
"num"=>$row["num"]
);
仮にここでは以下だと仮定し
array_push($array, array(
"work_location"=>$row["work_location"],
"num"=>$row["num"]
));
$row_l_numには上記の$arrayの内容がそのまま入っていると
すると、Smarty上は以下のようになります。
{foreach from=$row_l_num item="i"}
{$i.work_location}は{$i.num}件です
{/foreach}
ありがとうございます。問題だったのはSmartyではなく、array_pushを知らないことでした。ほかの書き方も試したところ、arrayに配列が1つしか入らずお手上げ状態だったものでして。
何とか解決できそうです。本当にありがとうございます。