Добрый день. Возник затык с обновление данных в БД при редактировании через сайт. Затык состоит в том, что данные хранятся в 2 таблицах, category_parametr и сфеупщкн_parametr_sort. При добавлении все ок, а при редактировании не добавляются данные в таблицу сорт. Код: if(trim($_POST['action'])=='add'){ $flds[]="`sort`='99999'"; } if(trim($_POST['action'])=='add'){ mysql_query("INSERT INTO `category_parameters` SET `active`='1', ".implode(', ', $flds).";"); $_POST['id']=mysql_insert_id(); } if(trim($_POST['action'])=='add'){ foreach($_POST['cids'] as $cid){ mysql_query("INSERT INTO `category_parameter_sort` SET `key`='"._F($_POST['key'])."', `cid`='"._F($cid)."', `sort`='99999';"); } } if(trim($_POST['action'])=='edit'){ mysql_query("UPDATE `category_parameters` SET ".implode(', ', $flds)." WHERE `id`='".intval($_POST['id'])."';"); } Вот тут нужно дописать, не могу понять как написать добавить данные при изменении.
так как мы не знаем структуры таблицы, то и точно вам сказать не можем как надо сделать. смотрите по аналогии как сделано для 'add' PHP: if(trim($_POST['action'])=='edit'){foreach($_POST['cids'] as $cid){mysql_query("UPDATE `category_parameter_sort` SET `key`='"._F($_POST['key'])."' WHERE `id`='".intval($_POST['id'])."';");}} это нерабочий код, а просто пример.
Спасибо за ответ! Сделал оп аналогии с add. Если делать через INSERT то записи дублируются при пересохранении. Содал - сохранил, создалась строка в БД. Отредактировал - создалась такая же строка снова. Если делать через UPDATE то он попросту не добавляет новые строки если я что то отмечаю. Получилось сделать скажем так по "колхозному" первой строкой - DELETE, вторая строка INSERT. Так все работает, но это не совсем корректно я так понимаю.
а какие аргументы передает при "обновлени" на страницу ? вижу, что $_POST['id']=mysql_insert_id(); - формируется в процессе добавления я бы предположил вот так сделать обновление: PHP: if (trim($_POST['action'])=='edit') {foreach($_POST['cids'] as $cid){mysql_query("UPDATE `category_parameter_sort` SET `key`='"._F($_POST['key'])."' , `sort`='99999' WHERE `id`='".intval($cid)."';");}}