Ben birine bu iki sorguları birleştirmek istiyorum:
mysql_query("INSERT INTO categories (name, parent) VALUES ('$name', '$parent')");
mysql_query("UPDATE categories SET child='$child' WHERE ID = $id");
Bu yapılabilir mi?
Bu sorununuzu uygun olmadığını ben bilmiyorum rağmen, aslında (o mysql uzantısı ile çalışmaz) MySQLi uzantısını kullanarak, içine birden sorguları birleştirmek mümkündür
mysqli_multi_query($connection, "INSERT INTO a (attrib1, attrib2) VALUES ('$a', '$b');UPDATE b SET attrib3='$c' WHERE attrib4 = $d");
MySQL bir tetikleyici oluşturmak.
Herhangi bir üst kategori varsa üzerinde kontrol veya alıcı istisnalar yapmadan aşağıdaki hile yapmak gerekir. Db ile ne olursa olsun 'dbname' değiştirin.
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
//
Tetik düzgün çalışıyorsa, güncelleme otomatik olarak bir INSERT böylece tüm yapmanız gereken çalıştırmak sonra çağrılan alacak:
mysql_query("INSERT INTO categories (name, parent) VALUES ('$name', '$parent')");