Преобразуйте горизонтальную строку таблицы в вертикальную - PullRequest
3 голосов
/ 27 января 2012

Я использую 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?

Ответы [ 3 ]

2 голосов
/ 28 января 2012

Я нашел одно решение этой проблемы, но я думаю, что это не лучший способ.вместо того, чтобы использовать библиотеку таблиц, я изменил свою модель, контроллер и представление так: модель:

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>

это работает отлично.но я хотел решить эту проблему более простым способом.

2 голосов
/ 28 января 2012

Если у вас возникли проблемы с реализацией моего предыдущего ответа ... Вот подробности ... Дайте мне знать, это полезно или нет? Благодарю.

/ * для контроллера * /

$ data ['user_data'] = $ this-> modle_name-> function_name; modle_name = имя вашего modle, где существует конкретная функция. имя_функции = функция в модуле, с помощью которой вы получаете все значения таблицы из базы данных mysql.

затем написать функцию в 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 } ?>
2 голосов
/ 28 января 2012

Эта проблема имеет очень простое решение, используя одну петлю 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.

, затем напишите функцию в режиме и перейдите на страницу просмотра:

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