Создать триггер в MySQL.
Без какой-либо проверки, если существует родительская категория или исключение для исключения, следующее должно сделать трюк. Замените 'dbname' тем, что есть у вашего db.
DROP TRIGGER IF EXISTS `dbname`.`update_parent`//
CREATE TRIGGER `dbname`.`categories` AFTER INSERT ON `dbname`.`categories`
FOR EACH ROW BEGIN
UPDATE categories SET child = NEW.ID WHERE ID = NEW.parent;
END
//
Когда триггер функционирует правильно, то обновление будет вызван автоматически после INSERT
так все, что вам нужно сделать, это запустить:
mysql_query("INSERT INTO categories (name, parent) VALUES ('$name', '$parent')");
Это два различных операций - почему вы пытаетесь объединить их? – thetaiko
@ thetaiko это для скрипта, который создаст новый элемент категории подкатегории. Когда вставлена подкатегория, я пытаюсь установить идентификатор этой подкатегории в родительское поле родительской категории. – Tom
так что '$ child' - это автоматически сгенерированный идентификатор из' INSERT' и '$ id == $ parent'? – thetaiko