PHPで assign する $data を var_dump などで出力すると原因が分かります。
PHP
1/*----1行目--------------*/
2$data['column1'] = 'poooooooooo!';
3$data['column2'] = 'puuuuuuuuuu!';
4$data['column3'] = 'peeeeeeeeee!';
5/*----2行目--------------*/
6$data['column1'] = 'waaaaaaaaaa!'; // 1行目の $data['column1'] を上書きしている
7$data['column2'] = 'weeeeeeeeee!'; // 1行目の $data['column2'] を上書きしている
8$data['column3'] = 'woooooooooo!'; // 1行目の $data['column3'] を上書きしている
9
10/*
11--- $data の中身 ---
12$data = array(
13 'column1' => 'waaaaaaaaaa!',
14 'column2' => 'weeeeeeeeee!',
15 'column3' => 'woooooooooo!',
16);
17*/
一般的に、DBから取得した一覧データは下記の構成になると思います。
PHP
1$data[0]['column1'] = 'poooooooooo!';
2$data[0]['column2'] = 'puuuuuuuuuu!';
3$data[0]['column3'] = 'peeeeeeeeee!';
4/*----2行目--------------*/
5$data[1]['column1'] = 'waaaaaaaaaa!';
6$data[1]['column2'] = 'weeeeeeeeee!';
7$data[1]['column3'] = 'woooooooooo!';
8
9/*
10--- $data の中身 ---
11$data = array(
12 array(
13 'column1' => 'poooooooooo!',
14 'column2' => 'puuuuuuuuuu!',
15 'column3' => 'peeeeeeeeee!',
16 ),
17 array(
18 'column1' => 'waaaaaaaaaa!',
19 'column2' => 'weeeeeeeeee!',
20 'column3' => 'woooooooooo!',
21 )
22);
23*/
24
あとついでと言ってはなんですが{counter}の使い方も教えて頂きたいです。
このソースだと「401」って..ぇ?なぜ?..って数字が表示されてしまいます。
counter は利用する前に、初期値を設定する必要があります。
初期値設定が無い場合、おそらく別の foreach 等のループ処理の影響が出ているのではないでしょうか。(← 憶測ですが。。。)
詳しい使い方は本家サイトをご確認ください。
http://www.smarty.net/docsv2/ja/language.function.counter.tpl
ちなみに、記載されたコードで行番号を表示したい場合は {$smarty.section.row.index} で取得できます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/01/22 07:11