удалить данные из базы данных, которых нет в массиве php - PullRequest
0 голосов
/ 11 июня 2018

Я использую CodeIgniter, и в моем контроллере есть две переменные

$bus_code = 1;

$route_code = array('route_code' => 1,'route_code' => 3,'route_code' => 4);

Данные таблицы MySQL,

- id, route_code,   bus_code
 - 1,     1,             1
 - 2,     2,             2
 - 3,     3,             1
 - 4,     4,             1
 - 5,     5,             2
 - 6,     7,             2

Я хочу удалить данные, где код шины равен 1, и маршруткод не в массиве $route_code в модели CodeIgniter

Ответы [ 4 ]

0 голосов
/ 11 июня 2018

Надеюсь, это поможет вам:

$bus_code = 1;
$route_code = [1,3,4];
$this->db->where('bus_code', $bus_code);
$this->db->where_not_in('route_code', $route_code);
$this->db->delete('table_name'); 

Примечание: ни одна строка не будет удалена с вашими текущими условиями, указанными выше

Длябольше: https://www.codeigniter.com/user_guide/database/query_builder.html#deleting-data

0 голосов
/ 11 июня 2018

Это поможет:

$this->db->where('bus_code', 1);
$this->db->where_not_in('route_code', $route_code);
$this->db->delete('table_name'); 

Замените table_name на имя таблицы.

0 голосов
/ 11 июня 2018

Вы можете сделать это, как указано ниже:

$route_code = array('route_code' => 1,'route_code' => 3,'route_code' => 4);
$route_code_values = array_values($route_code);
$this->db->where('bus_code', 1);  // Instead of 1 you can set variable too
$this->db->where_not_in('route_code', $route_code_values); // Passing just values of routes, We have defined column in 1st argument.
$this->db->delete('tableName'); // Set table name.
0 голосов
/ 11 июня 2018

Вот, пожалуйста.

$this->db->where('bus_code', $id);
$this->db->where_not_in('route_code', $route_code);
$this->db->delete('tableName'); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...