|
|
04.05.2011, 17:00
|
|
Гость
Гость
|
Каким образом возможно после добавления или после изменения объекта в поле $f_Name - строка, недоступное никому, записать значение из поля $Namesp - список?
Пробовал:
В действии после добавления объекта, а также в действии после изменения объекта:
Код:";
$f_Name=$f_Namesp_name;
echo "
Поле $f_Name всёравно пустое. Что делаю не так?
|
|
|
04.05.2011, 18:06
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Присвоить значение можно попробовать в условиях добавления, но не после.
Однако, насколько помню, с недоступными никому полями это может не прокатить.
Тогда после добавления делайте отдельный запрос к базе типа UPDATE, для идентификатора добавленного объекта можно использовать переменную $message.
|
|
|
04.05.2011, 18:15
|
|
Гость
Гость
|
для начала напишите
Код:
";
echo $f_Namesp_name;
exit();
echo "
и увидите чему равно $f_Namesp_name;
вообще не должно с пост запросом все переменные передавться, скорее всего вам нужно в форме создать скрытое поле и через него передавать значение, хотя я не доконца понимаю, что вы хотите изобразить и почему именно после добавление что-то присваивать нужно. в этот момент уже все добавлено в базу. логичнее это сделать до добавления или писать запрос что-то типа Update Message$classID SET Name тут получить что-то что в базу отправить WHERE Message_ID=$message
Короче говоря не факт что переменная существует в этот момент и та и другая, с тем значением с которым нужно, от которой вы пытаетесь добиться внимания и своего расположения
|
|
|
04.05.2011, 18:29
|
|
Гость
Гость
|
Цитата:Присвоить значение можно попробовать в условиях добавления, но не после.
Однако, насколько помню, с недоступными никому полями это может не прокатить.
Тогда после добавления делайте отдельный запрос к базе типа UPDATE, для идентификатора добавленного объекта можно использовать переменную $message.
Не прокатило с условием добавления и с доступным и недоступным полем
|
|
|
04.05.2011, 18:37
|
|
Гость
Гость
|
Цитата:для начала напишите
Код:
";
echo $f_Namesp_name;
exit();
echo "
и увидите чему равно $f_Namesp_name;
вообще не должно с пост запросом все переменные передавться, скорее всего вам нужно в форме создать скрытое поле и через него передавать значение, хотя я не доконца понимаю, что вы хотите изобразить и почему именно после добавление что-то присваивать нужно. в этот момент уже все добавлено в базу. логичнее это сделать до добавления или писать запрос что-то типа Update Message$classID SET Name тут получить что-то что в базу отправить WHERE Message_ID=$message
Короче говоря не факт что переменная существует в этот момент и та и другая, с тем значением с которым нужно, от которой вы пытаетесь добиться внимания и своего расположения
Получить хочу следующее:
В компоненте "товар" инет-магазина, поле Name - название товара, строка. Эта переменная выводится в корзине. Но при добавлении товара в магазин, хочется сделать чтобы каждый раз не набивать одно и тоже название товара в категории, выбирать из названий товаров (в магазине ограниченное кол-во названий товаров).
И если сделать поле Name - список, то в корзину (в заказ и т.д.) подаётся не название из списка а его ID, т.е. цифра. И в корзине уже не понято что за товары в ней лежат. Докопался до того, что понял что переделать это никак нельзя. Придумал сделать поле Name (строка) недоступным и сделать ещё одно поле Namesp (список).И при добавлении товара (или изменении) в магазин поле Name автоматом получало бы значение из Namesp_name. Но чтото не догоняю как это реализовать по другому. К сожалению в MySQL не силён.
|
|
|
04.05.2011, 18:42
|
|
Гость
Гость
|
Код:Update Message$classID SET Name Namesp_name WHERE Message_ID=$message
Так ли? и куда эту строку добавлять? в действие после добавления/изменения?
или в системные настройки компонента?
|
|
|
04.05.2011, 21:04
|
|
Гость
Гость
|
Решил c помощью знакомого! Спасибо ему огромное.
Может кому пригодится:
$name - Название товара (список NameIzdelie)
$ItemID - Артикул овара
В префиксе шаблона "Корзина" добавил такой код:
Код:";
for( $i = 0 ; $i < count( $GLOBALS['shop']->CartContents ) ; $i++ ) {
$idtemp = $GLOBALS['shop']->CartContents[$i]['Name'];
$nametemp = listQuery("SELECT NameIzdelie_Name FROM Classificator_NameIzdelie
Where NameIzdelie_ID = $idtemp",
'$data[NameIzdelie_Name]');
$GLOBALS['shop']->CartContents[$i]['Name'] = $nametemp ;
$GLOBALS['shop']->CartContents[$i]['Name'] .= " " . $GLOBALS['shop']->CartContents[$i]['ItemID'];
}
$result .= $GLOBALS['shop']->PrintCart();
В результате: в корзине выводится название товара и его артикул.
|
|
|
05.05.2011, 07:48
|
|
Гость
Гость
|
C магазином не работал, но в цикле генрить запросы к базе это тихий ужас
вот что написано в документации
Код:Списки – простейшая таблица, структура которой состоит из пяти полей: номер (ID) записи, имени (текстовое поле), приоритета, дополнительного значения и метки доступности (включен/ выключен). Так, если мы создаем список «Деньги» (Money), в нем будут пять полей: Money_ID, Money_Name, Money_Priority, Value, Checked. В теории баз данных термину «список» почти точно соответствует термин «классификатор».
|
|
|
05.05.2011, 15:17
|
|
Гость
Гость
|
Цитата:C магазином не работал, но в цикле генрить запросы к базе это тихий ужас
вот что написано в документации
Код:Списки – простейшая таблица, структура которой состоит из пяти полей: номер (ID) записи, имени (текстовое поле), приоритета, дополнительного значения и метки доступности (включен/ выключен). Так, если мы создаем список «Деньги» (Money), в нем будут пять полей: Money_ID, Money_Name, Money_Priority, Value, Checked. В теории баз данных термину «список» почти точно соответствует термин «классификатор».
Согласен, но другого способа повидимому нет
|
|
|
06.05.2011, 18:41
|
|
Константин
Зарегистрирован: 2010-06-23
Сообщений: 8
|
Можно сделать не применяя запросов в цикле, выбираем весь список, в массив, а потом достаем из него по id нужное нам имя, по ресурсам я думаю это будет куда менее затратно.
|
|
|
20.04.2012, 16:34
|
|
Nexwich
Панасин Александр
Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Действия после добавления
$db->query("UPDATE Message$classID SET Name='".$f_Namesp."' WHERE Message_ID=".$message);
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|