Я использую CodeIgniter, и у меня возникла проблема с методом соединения.
Мне нужны службы из таблицы db_services
по service_id, которая также хранится в db_orders
в том же имени столбца service_id
, У меня service_id
в качестве первичного ключа в таблице db_services
.
Теперь пользователь добавляет службы, установив флажок для требуемых служб с помощью функции implode()
, которая корректно помещает данные в базу данных db_orders
таблица в столбце service_id
, т. е. 1,2,3,5
Теперь, когда я получаю данные из db_orders
, я получаю разделенное запятыми значение из базы данных, которое прекрасно работает, когда я удаляю эту строку $this->db->join( $this->db->dbprefix('db_services'), $this->db->dbprefix('db_services').'.service_id = '.$this->db->dbprefix('db_orders').'.service_id' );
в своем Order_model - > Функция view_orders () все работает как шарм, но когда я добавляю эту строку, она показывает только одну запись (первую запись), например, если вставлены два (2) service_id, поэтому я получаю только ту, которая, я думаю, первое число, которое вставлено во время базы данных.
<?php $services = explode(",", $value->service_id);
foreach ( $services as $service ): ?>
<a href="" class="btn btn-success btn-flat btn-xs"><?php echo $service; ?></a>
<?php endforeach; ?>
Это была проблема, которую я решил, но настоящая проблема - когда я использую join
табличный метод это не работает, позвольте мне скопировать и вставить мой код, который поможет вам лучше справиться с проблемой. Я упомянул каждую мелочь, если вам нужно больше, я могу уточнить далее.
Order_model -> view_orders ( )
<?php
public function view_orders()
{
$this->db->select( '*' );
$this->db->from( $this->db->dbprefix('db_orders') );
$this->db->join( $this->db->dbprefix('db_order_status'), $this->db->dbprefix('db_order_status').'.order_status_id = '.$this->db->dbprefix('db_orders').'.order_status_id' );
$this->db->join( $this->db->dbprefix('db_users'), $this->db->dbprefix('db_users').'.user_id = '.$this->db->dbprefix('db_orders').'.user_id' );
$this->db->join( $this->db->dbprefix('db_services'), $this->db->dbprefix('db_services').'.service_id = '.$this->db->dbprefix('db_orders').'.service_id' );
$query = $this->db->get();
return $query->result();
}
?>
Контроллер заказов -> index ()
public function index()
{
$data['orders'] = $this->order->view_orders();
$data['title'] = "View All Orders";
$this->load->template('orders/view_all_orders', $data);
}
orders / view_all_orders. php
<?php
$services = explode(",", $value->service_id);
foreach ( $services as $service ): ?>
<a href="" class="btn btn-success btn-flat btn-xs"><?php echo $service; ?></a>
<?php endforeach; ?>