【问题标题】:How to remove redundant data in table from SQL query with join in codeigniter如何使用codeigniter中的连接从SQL查询中删除表中的冗余数据
【发布时间】:2015-04-29 14:56:00
【问题描述】:

控制器:

class adminpanel extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('login_database');
    }

    public function index() {
        $data['h'] = $this->login_database->load_orders();  
        $this->load->view('admin_page', $data);
    }

}

型号:

public function load_orders(){
    $this->db->select('*');    
    $this->db->from('orders');
    $this->db->join('order_detail', 'orders.serial = order_detail.orderid');
    $this->db->join('customers', 'orders.customerid = customers.serial');
    $this->db->order_by('date','DESC');
    $query = $this->db->get();
    $result = $query->result();
        return $result;     
    }
}

查看:

<table border="1" cellpadding="5px" cellspacing="1px" bgcolor="#FFFFFF">  
      <tbody>  
         <tr>  
            <td>Date</td>
            <td>Delivery Time</td> 
            <td>Meal Name</td>
            <td>Quantity</td>  
            <td>Customer Name</td>
            <td>Phone</td>
            <td>Location</td> 
            <td>Address</td>
            <td>Payment Method</td>
         </tr>  
         <?php  foreach ($h as $row)  { ?>
            <tr>  
               <td><?php echo $row->date;?></td>
               <td><?php echo $row->time;?></td>
               <td><?php echo $row->prodname;?></td>   
               <td><?php echo $row->quantity;?></td>
               <td><?php echo $row->name;?></td>
               <td><?php echo $row->phone;?></td>
               <td><?php echo $row->location;?></td>
               <td><?php echo $row->address;?></td>
               <td><?php echo $row->payment;?></td>
            </tr>  
         <?php } ?>  
      </tbody>  
   </table>  

返回的表有很多冗余数据,例如一位顾客订购了许多不同的餐点。对于他订购的餐点,它一遍又一遍地显示相同的客户名称。我如何消除这个并在表格中显示??

请帮忙。

【问题讨论】:

  • @CodeGodie.. 编辑后的版本好像一样??
  • 嗨,gugz。实际上没有,您的初始版本格式不正确。空格不均匀,因此难以阅读......你得到答案了吗?你能像 loki9 建议的那样使用左右连接吗?
  • 嘿 CodeGodie.. 不,它似乎摆脱了发回的冗余数据...我以表格形式放置
  • 为了进一步帮助您,您必须提供表格的外观、您当前在结果中获得的内容以及您真正想要的内容。一旦您提供了这些信息,我们将能够创建一个很好的查询。

标签: mysql database codeigniter join


【解决方案1】:

尝试像这样修改您的查询,我使用左连接和右连接..

$this->db->select('*');    
$this->db->from('orders');
$this->db->join('order_detail', 'orders.serial = order_detail.orderid', 'left');
$this->db->join('customers', 'orders.customerid = customers.serial', 'right');
$this->db->order_by('date','DESC');
$query = $this->db->get();
$result = $query->result();
return $result; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多