Transform a horizontal table row into a vertical o

2019-02-24 23:33发布

问题:

I am using CodeIgniter 2.1.0 and MySQL. I want to display a horizontal data row as a vertical one. When I fetch a single row from the database and echo it, it looks like

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

I have used CodeIgniters table library to generate the above table. instead of this, I want it show like this:

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

How do I do this with CodeIgniter 2.1.0?

回答1:

If you have any problem to implement my previous answer... Here is the details... Let me know is it useful or not? Thanks.

/* 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.

then write the function currectly in modle and go to the view page:it may be like that

/* model */

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

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


回答2:

i have figured out one solution to this problem, but i think it is not the best way. instead of using table library, i have changed my model,controller and view like this: model:

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

controller:

$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);

view:

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

this works perfectly. but i wished to solve this in a more simpler manner.



回答3:

This problem has a very easy solution by using a single foreach loop in your view page:

/* 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.

then write the function currectly in modle and go to the view page:

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