'How I can delete `id` and `sub id`
I have database like this:
| id | name_categories | id_categories |
|---|---|---|
| 1 | General | 0 |
| 2 | hotnews | 1 |
| 3 | breakingnews | 2 |
The main categories are:
- (
General) withid = 1andid_categories = 0 - Sub categories for main (
hostnews)id_categories = 1 - (
breakingnews) is sub main for (hotnews) withid_categories = 2 idlinked withid_categories
Deleting general should delete all id_categories linked with:
idmainsub mainsub sub mainHow can this be done with PDO PHP?
Solution 1:[1]
Correct database design covers this type of tasks automatically:
CREATE TABLE `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_categories` varchar(255) NOT NULL,
`id_categories` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `id_categories` (`id_categories`),
CONSTRAINT `categories_ibfk_1` FOREIGN KEY (`id_categories`) REFERENCES `categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Whenever you delete a row from this table, mysql will also delete all the referencing rows, and rows that reference referencing rows, etc.
You can recursively delete rows with PHP, but this is a bad idea for a number of reasons.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Jared |
