Вот таблица для продуктов Код (Text): CREATE TABLE IF NOT EXISTS `product` ( `id_product` int(8) NOT NULL auto_increment, `name` tinytext NOT NULL, `description` tinytext NOT NULL, `cost` int(5) NOT NULL, `id_catalog` int(8) NOT NULL default '0', `pos` smallint(3) NOT NULL default '0', `hide` enum('show','hide') NOT NULL default 'show', PRIMARY KEY (`id_product`), KEY `id_catalog` (`id_catalog`) ) ENGINE=MyISAM форма для добавления товара Код (Text): <? require_once ("../config.php"); //Если управляющие переменные переданы - выставляем значения по умолчанию if(!isset($title)) $title = "Добавление продукции"; if(!isset($button)) $button = "Добавить"; if(!isset($action)) $action = "addprod.php"; if(!isset($showhide)) $showhide = "checked"; //Если позиция каталога не передана, назначаем каталогу последнюю позицию if(!isset($pos)) { $query = "SELECT MAX(pos) FROM product WHERE id_catalog=".$_GET['id_parent']; $num = mysql_query($query); if($num) $pos = mysql_result($num, 0) + 1; } ?> <html> <head> <title><? echo $title; ?></title> </head> <a href="index.php?id_parent=<? echo $id_parent ?>">Вернуться на страницу администрирования каталога</a> <form action=<? echo $action ?> method=post> Наименование: <input type=text name=name value='<? echo $name; ?>'> Описание: <input type=text name=description value='<? echo $description; ?>'> Стоимость: <input type=text name=cost value='<? echo $cost; ?>'> Позиция: <input type=text name=pos value='<? echo $pos; ?>'> Отображать: <input type=checkbox name=hide <? echo $showhide; ?>> <input type=submit class=button value=<? echo $button; ?>> <input type=hidden name=id_catalog value=<? echo $_GET['id_catalog']; ?>> <input type=hidden name=id_product value=<? echo $_GET['id_product']; ?>> </form> скрипт добавления товара Код (Text): <? require_once ("../config.php"); //Проверим, достаточно ли информации для занесения в БД новой товарной позиции if(!isset($_POST['name'])) links($_POST['id_catalog'], "Отсутствует название товара"); if(!isset($_POST['description'])) links($_POST['id_catalog'], "Отсутствует описание товара"); if(!isset($_POST['cost'])) links($_POST['id_catalog'], "Отсутствует стоимость товара"); if(!isset($_POST['pos'])) links($_POST['id_catalog'], "Не введена позиция товара"); //Определяем, скрыта товарная позиция (hide) или доступна (show) if($hide == "on") $showhide = 'show'; else $showhide = 'hide'; //Заменяем одинарные кавычки обратными $_POST['name'] = str_replace("'", "`", $_POST['name']); $_POST['description'] = str_replace("'", "`", $_POST['description']); //Формируем и выполняем SQL-запрос на добавление новой товарной позиции $query = "INSERT INTO product VALUES (NULL, '".$_POST['name']."', '".$_POST['description']."', ".$_POST['cost'].", ".$_POST['pos'].", '$showhide', ".$_POST['id_catalog'].")"; if(mysql_query($query)) { //Автоматически осуществляем переход на главную страницу администрирования echo "<html><head> <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent=".$_POST['id_catalog']."'> </head>"; } else puterror ("Ошибка при добавлении продукции"); //Функция вывода предупреждения и ссылок возврата function links($id_catalog, $msg) { echo "<p>".$msg."</p>"; echo "<p><a href=# onClick='history.back()'>Вернуться к правке продукта</a></p>"; echo "<p><a href=index.php?id_parent=$id_catalog>Администрирование каталога</a></p>"; exit(); } ?> Также есть таблица catalog, в которой хранятся раздела (id_catalog,...,id_parent) Работает добавление/ред./уд. категорий, удаление продукции.. Никак не могу наладить добавление продукции, выводится ошибка: Код (Text): puterror ("Ошибка при добавлении продукции"); может кавычки какие нть ...Помогите плз
id_product и так auto_increment, убрал NULL - ничего не изменило. Добавлено спустя 1 минуту 41 секунду: Вот так добавляю категории: форма добавления категорий Код (Text): <? require_once ("../config.php"); //Если управляющие переменные переданы - выставляем значения по умолчанию if(!isset($title)) $title = "Добавление нового каталога"; if(!isset($button)) $button = "Добавить"; if(!isset($action)) $action = "addcat.php"; if(!isset($showhide)) $showhide = "checked"; //Если позиция каталога не передана, назначаем каталогу последнюю позицию if(!isset($pos)) { $query = "SELECT MAX(pos) FROM catalog WHERE id_parent=".$_GET['id_parent']; $num = mysql_query($query); if($num) $pos = mysql_result($num, 0) + 1; } ?> <html> <head> <title><? echo $title; ?></title> </head> <a href="index.php?id_catalog=<? echo $_GET['id_catalog']; ?>&id_parent=<? echo $_GET['id_parent']; ?>">Вернуться на страницу администрирования каталога</a> <form action=<? echo $action ?> method=post> Название: <input type=text name=name value='<? echo $name; ?>'><br> Описание: <textarea name=description rows=10 cols=60><? echo $description; ?></textarea> Позиция: <input type=text name=pos value='<? echo $pos; ?>'> Отображать: <input type=checkbox name=hide <? echo $showhide; ?>> <input type=submit value=<? echo $button; ?>> <input type=hidden name=id_catalog value=<?= $_GET['id_catalog'] ?>> <input type=hidden name=id_parent value=<?= $_GET['id_parent'] ?>> </form> скрипт вставки Код (Text): <? require_once ("../config.php"); //Проверим, достаточно ли информации для занесения в БД нового каталога if(empty($_POST['name'])) links($_POST['id_catalog'], "Отсутствует название каталога"); if(empty($_POST['pos'])) links($_POST['id_catalog'], "Не введена позиция каталога"); //Определяем, скрыт каталог (hide) или доступен (show) if($_POST['hide'] == "on") $showhide = "show"; else $showhide = "hide"; //Заменяем одинарные кавычки обратными $_POST['name'] = str_replace("'", "`", $_POST['name']); $_POST['description'] = str_replace("'", "`", $_POST['description']); //Формируем и выполняем SQL-запрос на добавление нового каталога $query = "INSERT INTO catalog VALUES (NULL, '".$_POST['name']."', '".$_POST['description']."', ".$_POST['pos'].", '$showhide', ".$_POST['id_catalog'].")"; if(mysql_query($query)) { //Автоматически осуществляем переход на главную страницу администрирования echo "<html><head> <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent=".$_POST['id_catalog']."'> </head>"; } else links($_POST['id_catalog'], "Ошибка при добавлении каталога"); //Функция вывода предупреждения и ссылок возврата function links($id_catalog, $msg) { echo "<p>".$msg."</p>"; echo "<p><a href=# onClick='history.back()'>Вернуться к правке каталога</a></p>"; echo "<p><a href=index.php?id_parent=$id_catalog>Администрирование каталога</a></p>"; exit(); } ?>
У меня твой запрос отработал. Сделай Код (PHP): echo $query; exit(); if(mysql_query($query)) и посмотри что у тебя там в запросе.. может товар с кавычками и не эскейпится чтонить Добавлено спустя 777 секунд: http://www.php.ru/manual/function.mysql-escape-string.html
Вот что выдал скрипт добавления товара, id_catalog не взялся..че то хз Код (Text): INSERT INTO product VALUES (NULL, 'ee', 'ee', 1270, 1, 'show', ) у добавления каталогов все путем: Код (Text): INSERT INTO catalog VALUES (NULL, 'ee', 'ee', 3, 'show', 1)
Ну наконец-то, свежий воздух помог. В форме добавление товара, поставил id_parent Код (Text): <input type=text name=id_catalog value=<?= $_GET['id_parent'] ?>> а эта строчка, походу вобще не нужна, я ее удалил Код (Text): <input type=text name=id_product value=<? echo $_GET['id_product']; ?>>