Перейти к содержимому


Вычисление на основе параметров из связанных полей - в чем ошибка?


  • Вы не можете ответить в тему
В этой теме нет ответов

#1 PrintCore

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений
  • Пол:Мужчина

Отправлено 21 Март 2018 - 13:40

Добрый день. Хочу создать своего рода калькулятор который бы показывал цену в зависимости от выбранных параметров.
1. Есть таблица "Параметры", где содержатся записи "Наименование продукции" (значение по умолчанию), "параметр 1", "параметр 2", "цена". (параметров планируется больше от 3 до 10 шт).
В таблице "Параметры" есть несколько записей в которых значения "параметр 1" и "параметр 2" могут совпадать по одному из пунктов или полностью отличаться.
2. Есть вторая таблица "Конфигуратор" в которой есть поля "Наименование продукции" (значение по умолчанию), "параметр 1" (связь ['Параметры']['параметр 1']), "параметр 2"(связь ['Параметры']['параметр 2']), "цена" (результат вычисления).

Как должно работать. Заполняем поля в таблице "Конфигуратор", Параметр 1 - ниспадающий список из связанного поля (выбор только 1 параметра), параметр 2 аналогично. При нажатии на кнопку добавить, в поле "Цена" записывается результат.

Вычисление цены: вычисление производится в таблице "Конфигуратор". По задумке, выбрав из списков параметр 1 и параметр 2, вставляем полученные значения в запрос к БД и выбираем из таблицы "Параметр" строку содержащую оба параметра из этой строки выбираем значение из поля цена и записываем.

Код вычисления:
$data = $line['Параметр 1']; //передаем в переменную строку данных из связанного поля
$v = $data['f13551'];//обращаемся к элементу массива содержащему значения по ключу
$data2 = $line['Параметр 2']; //передаем в переменную строку данных из связанного поля
$v2 = $data[f13611'];//обращаемся к элементу массива содержащему значения по ключу
$result = sql_query("SELECT * FROM f_data1001 WHERE f13531 = $v AND f13601 = $v2");//получаем строку из таблицы содержащую оба параметра.
$res = sql_fetch_array($result);//переводим данные в массив
$and = $res['f13541'];//передаем в переменную значение в поле "цена" обращаясь по ключу к соответствующему элементу массива.
$line['Цена'] = $and;//передаем значение в поле цена исходной таблицы.

Вопросы:
1. При выборе параметров из связанной таблицы выводятся все значения, в том числе и повторяющиеся, можно ли как-то запретить/отфильтровать или как-то еще убрать дубли значений параметров.
2. При расчете стоимости, срабатывает правильно только параметр 1 = цена, т.е. не зависит от выбора 2го параметра. При этом если из списка выбрать второй встречающийся дубль параметра 1, то цена будет соответствовать второй записи в таблице "Параметры". В чем ошибка?





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных