2012-01-27 15 views
3

私はCodeIgniter 2.1.0とMySQLを使用しています。横のデータ行を縦に表示したい。私は、データベースから単一の行をフェッチし、それをエコーするとき、それは水平テーブル行を垂直方向に変換する

---------------------------------------- 
id | name | address | email  | 
---------------------------------------- 
1  | Foo | Bar  | [email protected] | 
---------------------------------------- 

ように見える私は上記の表を生成するCodeIgnitersテーブルライブラリを使用しています。これの代わりに、私は次のように表示します:

------ 
id : 1 
name: foo 
address : bar 
email: [email protected] 
------------------- 

これをCodeIgniter 2.1.0でどうやって行いますか?

+0

@ rooneylを参照してください、私はそれを見ましたが、それは助けにはなりません:http://stackoverflow.com/questions/3400621/php-arrange-table-content-from-horizo​​ntal-to-vertical – Rooneyl

+0

私は1行しか取り出していないので、$ this-> table-> generate( 'records');結果を示しています。 と私は質問に記載されているようにそれを示したいと思います。これで私を助けてくれますか? – Shabib

答えて

2

私の以前の回答を実装する上で問題がある場合は...ここに詳細があります... それは有用かどうかを教えてください。おかげさまで

/*コントローラの*/

$データ[ 'USER_DATA'] =の$ this - > modle_name-> FUNCTION_NAME。 modle_name =特定の関数が存在するモデル名。 function_name =関数は、mysql dbからすべてのテーブル値を取得するためのmodleになります。

その後、modleでcurrectly関数を記述し、ビューのページに移動:それはその

/*モデル*/

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 } ?> 
等であってもよいです
+0

u @ sakibに感謝します:) – Shabib

+0

解決策はあなたを助けます。 –

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にcurrectly関数を記述し、ビューのページに移動:

/* 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 } ?> 
+0

ありがとうございますsakib :) – Shabib

2

私はこの問題の解決策を一つ考え出しましたが、それが最良の方法ではないと思います。 代わりに、テーブルのライブラリを使用するので、私は私のモデル、コントローラーを変更し、次のように表示している: モデル:

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> 

これは完璧に動作します。しかし私はこれをもっと簡単な方法で解決したいと思っていました。

関連する問題