У меня есть база данных, где пользователи могут создавать несколько страниц, как показано на рисунке ниже.
Я использую codeigniter MVC, я бы хотел, чтобы пользователи могли удалять свои страницы.
Так что если page_id = 1
проходит мимо user_id =1
для удаления следует удалить только строку в таблице для user_id = 1 и page_id = 1.
Вот мой model_page.php
код, но все страницы для user_id 1 удаляется
function delete_user_page($user_id, $page_id){
$query = $this->db->where('user_id', $user_id and 'page_id', $page_id);
return $this->db->delete('mysql_table');
}
Спасибо
function delete_user_page($user_id, $page_id){
$cond = ['user_id' => $user_id, 'page_id' => $page_id];
$query = $this->db->where($cond);
return $this->db->delete('mysql_table');
}
Логика в том, что нам нужно составить массив всего списка параметров.
Вы можете попробовать либо
$sql = "DELETE FROM mysql_table WHERE user_id = ? AND page_id = ?";
$this->db->query($sql, array($user_id, $page_id));
ИЛИ ЖЕ
$this->db->delete('mysql_table', array('user_id' => $user_id,'page_id' => $user_id));
Вы можете использовать метод ассоциативного массива:
function delete_user_page($user_id, $page_id)
{
$where_cond = ['user_id' => $user_id, 'page_id' => $page_id];
return $this->db->delete('mysql_table', $where_cond);
}
// DELETE FROM mysql_table WHERE user_id = $id AND page_id = $page_id
Ищем конкретные данные:
https://www.codeigniter.com/userguide3/database/query_builder.html#looking-for-specific-data
Удаление данных:
https://www.codeigniter.com/userguide3/database/query_builder.html#deleting-data