如何在Codeignter中联接这些表

时间:2019-05-23 06:31:11

标签: php mysql codeigniter

我在连接这些表时遇到了问题,并且还知道如何使控制器代码来查看带有文本框的视图文件中的数据。

<add key="quartz.dataSource.default.provider" value="SQLite" />

3 个答案:

答案 0 :(得分:0)

您可以使用MVC解决此问题

//Controller
function get_data() {

   $data['list'] = $this->your_model->get_data();
   $this->load->view('your_view/location',$data); 
}

//Model
function get_data() {

  $sql = "your_query";
  $list = $this->db->query($sql)->result_array();
  return $list;
}

//View
foreach($list as $data) {
  echo $data['your_selected_field']; // it could be table,text field,or just text
}

API参考:https://www.codeigniter.com/user_guide/database/results.html#result-arrays
希望这会有所帮助

答案 1 :(得分:0)

首先,您可以创建OrderModel以使用订单表。然后创建函数get_order_data。

//Order Model
public function get_orders() {
   // your db query to get orders
   return $result;
}

然后您可以使用$this->load->model('OrderModel');在控制器中加载模型。最好的地方是__construct加载模型

并调用您的get_orders()函数

// Your controller
// Create data array to store front data 
$data = [];
$data['orders'] = $this->OrderModel->get_orders();

获得$ orders后,使用以下代码将其传递给视图

$this->load->view('path/to/view', $data);

最后,您可以使用$ orders在视图中调用您的订单数据

我希望这对您有帮助

答案 2 :(得分:0)

您需要为表设置别名以使其正常运行。

  $this->db->select('a.*,a.order_details_id, b.order_id ', false);
   $this->db->from('tbl_order_details as a');
    $this->db->join('tbl_order as b', 'a.order_id  =  b.order_id ', 'left');

如果只选择1行,则需要使用此功能。

$this->db->get('tbl_order_details')->row_array(); 

或者如果您想要所有结果行,则需要使用它。

 $this->db->get('tbl_order_details')->result_array(); 

在您的控制器上,您应该添加以下行以将结果传递到视图页面上。

public function index()
{
        $data['orderDetails'] = $this->your_model->get_order_return_info();
        $this->load->view('pages/yourview/index',$data);
}

最后将您的订单详细信息设置到文本框中。您需要在这样的文本框中回显它。

 <input type="Text" name="orderID" value="<?php echo $orderDetails['order_id'];?>" >

如果使用result_array(),则需要使用foreach循环来回显它。