3

CodeIgniter 2.1.0 と MySQL を使用しています。横のデータ行を縦のデータ行として表示したい。データベースから単一の行をフェッチしてエコーすると、次のようになります

----------------------------------------
id    | name   | address | email       |
----------------------------------------
1     | Foo    | Bar     | foo@bar.com |
----------------------------------------

上記のテーブルを生成するために CodeIgniters テーブル ライブラリを使用しました。これの代わりに、次のように表示します。

------
id : 1
name: foo
address : bar
email: foo@bar.com
-------------------

CodeIgniter 2.1.0 でこれを行うにはどうすればよいですか?

4

3 に答える 3

2

私の以前の回答を実装するのに問題がある場合は... 詳細はこちらです... 役立つかどうか教えてください。ありがとう。

/* コントローラ用 */

$data['user_data'] = $this->modle_name->function_name; modle_name= 特定の関数が存在するモデル名。function_name= 関数をモジュールに追加すると、mysql db からすべてのテーブル値を取得できます。

次に、modleで関数を正しく記述し、ビューページに移動します:それはそのようなものかもしれません

/* モデル */

function function_name(){
$sql = "select * from tablename where condition";
$query = $this->db->query($sql);
return $query->result_array();
}

/* ビュー用 */

<?php foreach ($user_data as $data) {?>
<tr>
 <?php echo 'ID:' . '  ' ?>
 <?php echo ($data['id']); ?>
 <?php echo 'Name:' . '  ' ?>
 <?php echo ($data['name']); ?>
 <?php echo 'Address:' . '  ' ?>
 <?php echo ($data['address']); ?>
 <?php echo 'E-mail:' . '  ' ?>
 <?php echo ($data['email']); ?>
</tr> 
<?php } ?>
于 2012-01-28T10:52:04.500 に答える
2

この問題の解決策を 1 つ見つけましたが、最善の方法ではないと思います。テーブルライブラリを使用する代わりに、モデル、コントローラー、ビューを次のように変更しました: モデル:

function detail()
{
 $this->db->where('id',$this -> session -> userdata('id'));
 $query=$this->db->get('user');
 $row=$query->row_array();
 return $row;
}

コントローラ:

$this->load->model('my_model');
$this->my_model->detail();
$data=array(
 'id'=>$query['id'],
 'name'=>$query['name'],
 'address'=>$query['address'],
 'email'=>$query['email']
);
$this->load->view('my_view',$data);

見る:

<div>
id : <?php echo $id;?><br/>
name: <?php echo $name;?><br/>
address: <?php echo $address;?><br/>
email: <?php echo $email;?>
</div>

これは完全に機能します。しかし、私はこれをもっと簡単な方法で解決したかったのです。

于 2012-01-28T07:37:50.507 に答える
2

この問題は、ビュー ページで単一のforeachループを使用することにより、非常に簡単に解決できます。

/* for controller */    
    $data['user_data'] = $this->modle_name->function_name;
    modle_name= your modle name where the specific function exists.
    function_name= function into the modle by which you get all the table value from mysql db.

次に、modle で関数を正しく記述し、ビュー ページに移動します。

/* for view */

<?php foreach ($user_data as $data) {?>
<tr>
 <?php echo 'ID:' . '  ' ?>
 <?php echo ($data['id']); ?>
 <?php echo 'Name:' . '  ' ?>
 <?php echo ($data['name']); ?>
 <?php echo 'Address:' . '  ' ?>
 <?php echo ($data['address']); ?>
 <?php echo 'E-mail:' . '  ' ?>
 <?php echo ($data['email']); ?>
</tr> 
<?php } ?>
于 2012-01-28T06:07:11.417 に答える