![](/img/trans.png)
[英]Creating a tracking table in Codeigniter. Inserting data with Foreach
[英]Creating a report with more 60000 rows of a vertical table in codeigniter. How to paginate?
在我決定發布此問題之前,經過了許多思考過程。 試圖以簡化格式解釋我的問題。
我的mySQL表中有2個表,其中一個是用戶,另一個是與該用戶相關的問題和答案。
簡化示例:
用戶
| id | name | registered_on |
|----|--------|---------------------|
| 1 | Aaron | 2017-02-01 00:01:02 |
| 2 | Baron | 2017-02-01 01:01:02 |
| 3 | Chiron | 2017-02-01 02:01:02 |
答案鍵
| id | user_id | keyword | value | created_on |
|----|---------|---------|---------|---------------------|
| 1 | 1 | gender | Male | 2017-02-01 00:01:02 |
| 2 | 1 | age | 24 | 2017-02-01 00:01:02 |
| 3 | 2 | gender | Male | 2017-02-01 00:01:02 |
| 4 | 2 | age | Unknown | 2017-02-01 00:01:02 |
| 5 | 3 | gender | God | 2017-02-01 00:01:02 |
我希望上面的關系很清楚。 所以我想要實現的是創建一個像這樣的CSV報告
| name | gender | age | registered_on |
|--------|--------|---------|---------------------|
| Aaron | Male | 24 | 2017-02-01 00:01:02 |
| Baron | Male | Unknown | 2017-02-01 01:01:02 |
| Chiron | God | NULL | 2017-02-01 02:01:02 |
正如我的研究表明的那樣,可以通過以下方式完成此操作:
我正在考慮分頁,但是還沒有弄清楚在垂直表的情況下如何使用它。 如果你們中的任何一個遇到相同的問題或提出了一些有意義的建議,我都非常希望! 任何幫助表示贊賞!
如果我很了解您的問題,您是否想要一個CSV文件,其中包含所有使用答案鍵作為列的用戶信息?
為什么不使用2個查詢執行此操作?
首先,您可以在答案表中選擇所有不同的鍵( select distinct keyword...
),然后使用對結果進行循環的joins創建查詢:
$this->db->select('u.id, u.name, u.registered_on');
$this->db->from('users u');
foreach($keywords as $i_key => $s_keyword){
$this->db->join('answers_table at'.$i_key, 'at'.$i_key.'.user_id = u.id', 'left');
$this->db->select('at'.$i_key.'.value as '.$s_keyword);
}
$a_users = $this->db->get()->result();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.