2016-08-10 3 views
1

Okay, so hier meine Kategorie-Subkategorie Tabelle ist, die wie folgt aussieht:Geordnete Kategorie kann nicht gelöscht werden

cat_id | cat_name | parent | cat_status | parent_id 

1  | Mens  | --  | Active  | 0 

2  | Womens | --  | Active  | 0 

3  | Shoes | Mens | Active  | 1 

Frage:

Okay, ich Jetzt "Mens" Kategorie direkt löschen, sollte es prompt sein, dass Sie können löschen Mens, müssen Sie zuerst Unterkategorie mit "Mens" löschen (Hier in meinem Fall muss ich Schuhe zuerst löschen).

+0

Also, was Ihr Fehler ist? –

+0

Gerade jetzt! Wenn ich "Mens" lösche erlaubt es mir, es zu löschen, aber es sollte sofort "Ich muss seine Unterkategorie löschen" dann und dann nur ich cn lösche es ... –

+0

Also vor dem Löschen eines Datensatzes überprüfen, ob es nicht der ist Kinder anderer Kategorie und wenn es existiert, dann wird es manuell angezeigt –

Antwort

2

Sie müssen die Verfügbarkeit der vorhandenen Unterkategorie vor dem Löschen überprüfen. Sie können einen Ajax-Aufruf durchführen und prüfen, ob eine Unterkategorie existiert. "SELECT cat_id from table WHERE parent_id =?" Wenn Sie das Ergebnis gefunden haben, können Sie dem Benutzer mitteilen, dass die Unterkategorie verfügbar ist.

0

Sie eine Tabelle mit einem Fremdschlüssel referening gleichen Tisch ID erstellen

EX;

Tabelle category_demo ( cat_id int auto_increment erstellen NOT NULL, parent_id int DEFAULT NULL, Label varchar (100) nicht null default '', Primärschlüssel (cat_id), Fremdschlüssel (parent_id) Referenzen category_demo (cat_id) beim Löschen RESTRICT bei der Update-Kaskade );

Fügen Sie die Stammkategorie mit der übergeordneten ID als NULL ein.

Dann, wenn Sie die Kategorie Mutter löschen und es hat eine entsprechende Kind Kategorie es wird Sie über Fremdschlüssel Fehler zurück

SQL Fiddle

Verwandte Themen