人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

こんにちは。ほかでも似たような質問があり、それも試してみたのですが解決できず質問させていただきます。PHP初心者です。求人のサイトなどである「求人(○件)」のようなことをしたいと思っています。テーブルから○件取得するというところまでは以下のようなコードで実現できました。

//データの選択
$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で書けばよいのですか?教えてください。

●質問者: あらた
●カテゴリ:インターネット ウェブ制作
✍キーワード:as GROUP PHP SELECT Smarty
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● munyaX
●60ポイント

最初に気になったのですが、以下ですと一つの配列しか$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つしか入らずお手上げ状態だったものでして。

何とか解決できそうです。本当にありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ