Доброго времени суток.
Имеется массив переданный на страницу как $_POST['ch']
, в котором храниться неизвестное количество чисел (id checkbox'ов
). Есть таблица base
, с столбиками id
name
prod
price
. И есть еще отдельная таблица ord
с столбиками id
name
prices
sum
. Как сделать так, что-бы все числа, которые в массиве были id
от таблицы base
и в таблицу ord
записывались значения:
id
- авто;
name
- здесь будут через запятую все числа с массива $_POST['ch']
prices
- здесь через запятую все значения колонки price
таблицы base
(все числа с массива $_POST['ch']
- это id
таблицы base
)
sum
- сумма всех чисел с колонки prices
(выше).
Только не база данных base
и ord
, а, видимо, таблицы base
и ord
в БД.
Если предположить, что БД у нас MySQL, то код будет таким:
$join = join($_POST['ch'], ', '); //склеиваем массив в строку
$q="INSERT INTO `ord` (`name`,`prices`,`sum`) SELECT '$join' AS `name`, GROUP_CONCAT(`price` SEPARATOR ', ') AS `prices`, SUM(`price`) AS `sum` FROM `ord` WHERE `id` IN ($join)"; //создаём запрос
/*
далее надо выполнить в БД наш запрос $q,
например, функцией mysqli_query()
*/
Важно! Предполагается, что массив $_POST['ch']
является "чистым", т.е. автор уверен, что в нём именно числа, а не что-то ещё. В противном случае надо предварительно проверить массив, иначе есть риск SQL-инъекции
Хранить что-то через запятую плохая практика, лучше создайте ещё одну таблицу, где будет построчно хранится $_POST['ch']
и id записи к которой каждый элемент принадлежит.
Заведите третью таблицу
CREATE TABLE it_to_name(
id INT,
name INT,
price INT
)
Сделайте id
внешним ключом к id
из таблицы ord
и храните в ней необходимые данные таким образом
id | name | price
------+--------+-------
1 | 2 | 10000
1 | 15 | 5000
1 | 23 | 6350
2 | 17 | 15000
2 | 18 | 460
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как вывести в шаблоне несколько цен, прибавлением процента
Как текущий код Нативного PHP переделать под синтаксис Laravel ORM?
Подскажите как использовать Telegram Api на PHPКак вызывать функции? Очень много примеров использования telegram api для бота, а как использовать обычное...