用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2043|回复: 5
收起左侧

[已解决] 有關於循環查詢,該如何做?

[复制链接]
发表于 2011-2-18 10:58:40 | 显示全部楼层 |阅读模式
本帖最后由 sgeta 于 2011-2-18 15:17 编辑

需求是列出一份個人資料的清單,在每一筆資料裡分別列出這個人的前3個訂單

類似下面這樣
name1,[order1,order2,order3],phone,address
name2,[order1,order2,order3],phone,address

查了一下,需要在model裡就先做好array的排列

實際到底該如何做呢?理不出頭緒來

若是以前只要2個循環就能完成,但使用ci後,反而不知如何下手…

能否請各位先進給點指示呢?
发表于 2011-2-18 13:52:09 | 显示全部楼层
实际上,确实和以前的一样,你把以前的代码复制过来一样可以用。
 楼主| 发表于 2011-2-18 14:51:52 | 显示全部楼层
嘗試在model裡作了一下,但一直報錯,能看看哪裡弄錯了什麼嗎?

          $data = $this->db->query($q);
          $a1 = array();
          $a2 = array();
          foreach ($data->result_array() as $tmp){
               foreach ($tmp as $tmp2){
                    array_push($a2,$tmp2);
               }
               $tmp3=list_order($tmp['id']);
               array_push($a2,$tmp3);
               array_push($a1,$a2);
          }
          return $a1;
 楼主| 发表于 2011-2-18 15:16:36 | 显示全部楼层
自己回一下,總算解決囉,順便列出修改後的原始碼

          $data = $this->db->query($q);
          $a1 = array();
          foreach ($data->result_array() as $tmp){
               $a2 = array();
               foreach ($tmp as $tmp2){
                    array_push($a2,$tmp2);
               }
               $tmp3=$this->model->list_order($tmp['id']);
               array_push($a2,$tmp3);
               array_push($a1,$a2);
          }
          return $a1;
发表于 2011-2-18 18:31:13 | 显示全部楼层
$tmp3=$this->model->list_order($tmp['id']);
这句话什么意思?
 楼主| 发表于 2011-2-21 09:32:05 | 显示全部楼层
$tmp3=$this->model->list_order($tmp['id']);
这句话什么意思?
Hex 发表于 2011-2-18 18:31


寫的不好讓老大見笑了

因為另外有個model用來處理order的array (在別處也有用,所以拆開寫)

內容如下:

     function list_order($id)
     {
          $order = $this->db->get_where('order',array('id'=>$id),'3','0');
          $a1 = array();
          foreach ($order->result_array() as $tmp){
               array_push($a1,$tmp);
          }
          return $a1;
     }

本版积分规则