[PHP-users 23176]Re: foreachを使ってデータを一つのテーブルで表示させる方法

Koyama Manabu sm-bunbun-ll @ mx9.tiki.ne.jp
2004年 9月 1日 (水) 20:13:09 JST


小山といいます。

ぢょ〜@よくきたなさん、宇野 信太郎さんご回答ありがとうございました。
宇野信太郎さんのご回答より、
============テンプレート側============
 {foreach item=t_data from=$t_array}
 <tr>
<td>$t_data.syoribi</td>
<td>$t_data.kaiukeninmei</td>
<td>$t_data.uriagekingaku</td>
<td>$t_data.uriagekirosu</td>
</tr>
{/foreach}
=====================================
と変更しました。
==============php側==================
function get_kekka(){
$sql="EXECUTE sampletest_store;";
$db_result=$this->db_object->getAll($sql,array(),DB_FETCHMODE_ASSOC);
   if(DB::isError($db_result)){
     print $db_result->getDebugInfo();
     exit;
   }
$this->smarty_obj->assign("t_array",$db_result);
$this->smarty_obj->display("search_kekka.tpl");
$this->db_object->disconnect();
}
=====================================
とほとんど同じように変更しました。
この状態でwebブラウザから実行させる(kensaku.phpにアクセス)と
$t_data.syoribi
$t_data.kaiukeninmei
$t_data.uriagekingaku
$t_data.uriagekirosu
上記の部分が、値として表示されるのではなくて、
そのまま文字列として表示されてしまいます。
"getAll"でうまく配列として値が取得できていないのでしょうか?
肝心のストアドプロシージャは、
=============================================================
    declare @kaisi datetime
    declare @kaiuke int

 set @kaisi='2004/6/2'
 set @kaiuke=30

select a.syoribi as syoribi,c.kaiukeninmei as kaiukeninmei,b.uriagekingaku
as uriagekingaku,
b.uriagekirosu as uriagekirosu from hanbaidataT as a inner join
hanbaimeisaiT as b on a.hanbaiid=b.hanbaiid
inner join kaiukeninmasterT as c on b.kaiukenincode=c.kaiukenincode
where a.syoribi=@kaisi and b.kaiukenincode=@kaiuke
================================================================
と静的に変数をセットしており、きちんと値は取得できております。
select文以降の名前と$t_data以降の名前もきちんと一致しているので
大丈夫だと思うのですが。

ぢょ〜@よくきたなさんのご回答より
>マニュアルで Smarty::display() を調べると分かりますよ.
と書かれていたので
http://sunset.freespace.jp/smarty/SmartyManual_2-6-3J_html/api.display.html
を見ました。
この一文より----------------------------------------------------
それぞれの $template_dir のために別々の compile_id をセットしなければ、
同名のテンプレートはお互いに上書きされてしまいます。
 この関数をコールする度に compile_id をセットする代わりに、
一度 $compile_id 変数をセットする事が出来ます。
----------------------------------------------------------------
とあるのですが、"compile_id"というのを別にセットすれば、
上書きされないという事なのでしょうか?
宇野信太郎さんのような書き方でなくて別の書き方という事なのでしょうか?
ちょっとよく分からなかったです。

ではありがとうございました。
よろしくお願いします。





PHP-users メーリングリストの案内