Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 05.12.2023
Сообщений: 3

Добавление id товаров в таблицу

05.12.2023, 01:32. Показов 835. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте, сейчас пробую написать сайт, столкнулась с проблемой добавления в бд нескольких записей в одну таблицу. До этого уже написала код для покупки одного товара. По тому же принципу делала и добавление нескольких товаров. В бд есть таблица со своей сборкой, в нее должны добавляться id выбранных в конфигураторе товаров, id добавляются каждый в свой массив, после, 7 массивов переношу в файл с занесением этих данных в бд. Массивы приходят не пустые, это я проверяла. Подскажите пожалуйста, что не так.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
require_once 'conf.php';
 
 
// Проверка подключения
if ($dbh->connect_error) {
    die("Connection failed: " . $dbh->connect_error);
}
 
// Получение выбранных товаров
$selectedProductsV = $_POST['selected_productsV'];
$selectedProductsP = $_POST['selected_productsP'];
$selectedProductsO = $_POST['selected_productsO'];
$selectedProductsM = $_POST['selected_productsM'];
$selectedProductsH = $_POST['selected_productsH'];
$selectedProductsB = $_POST['selected_productsB'];
$selectedProductsK = $_POST['selected_productsK'];
 
$ProductsV = 0;
$ProductsP = 0;
$ProductsO = 0;
$ProductsM = 0;
$ProductsH = 0;
$ProductsB = 0;
$ProductsK = 0;
 
foreach ($selectedProductsV as $productId) {
    
    $ProductsV = $productId;
}
 
foreach ($selectedProductsP as $productId) {
    
    $ProductsP = $productId;
}
 
foreach ($selectedProductsO as $productId) {
    
    $ProductsO = $productId;
}
 
foreach ($selectedProductsM as $productId) {
    
    $ProductsM = $productId;
}
 
foreach ($selectedProductsB as $productId) {
    
    $ProductsB = $productId;
}
 
foreach ($selectedProductsK as $productId) {
    
    $ProductsK = $productId;
}
 
 
// Занесение выбранных товаров в таблицу заказов
$orderQuery = $dbh->prepare("INSERT INTO pers_assembly (id_videocart, id_processor, id_operativ, id_motherboard, id_hdd, id_blocpit, id_corpus) VALUES (:id_videocart, :id_processor, :id_operativ, :id_motherboard, :id_hdd, :id_blocpit, :id_corpus)");
 
 
$orderQuery->bindParam(':id_videocart', $id_videocart);
$orderQuery->bindParam(':id_processor', $id_processor);
$orderQuery->bindParam(':id_operativ', $id_operativ);
$orderQuery->bindParam(':id_motherboard', $id_motherboard);
$orderQuery->bindParam(':id_hdd', $id_hdd);
$orderQuery->bindParam(':id_blocpit', $id_blocpit);
$orderQuery->bindParam(':id_corpus', $id_corpus);
 
 
$id_videocart = $_POST['ProductsV'];
$id_processor = $_POST['ProductsP'];
$id_operativ = $_POST['ProductsO'];
$id_motherboard = $_POST['ProductsM'];
$id_hdd = $_POST['ProductsH'];
$id_blocpit = $_POST['ProductsB'];
$id_corpus = $_POST['ProductsK'];
 
$orderQuery->execute();
$orderQuery = null;
$dbh = null;
 
?>
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2023, 01:32
Ответы с готовыми решениями:

Как сделать добавление товаров в связную таблицу?
Здравствуйте, нужна ваша помощь, я не понимаю как сделать добавление товаров в связную таблицу. У меня есть две таблицы: 1-заказ, а 2-...

Добавление в таблицу логического поля для отметки нужных товаров
Доброго дня! У меня такая задача: в программе имеется таблица с большим количеством строк &quot;Наименование товара, цена т д&quot;....

Добавление в базу данных товаров, удаление товаров, редактирование товаров
Подскажите, насколько сложно и вообще можно ли реализовать на WP следующие вещи. 1) Добавление в базу данных товаров, удаление...

6
Заблокирован
05.12.2023, 08:37
Цитата Сообщение от aaaryaaa Посмотреть сообщение
foreach ($selectedProductsV as $productId) {
$ProductsV = $productId;
}
В этом коде значением $ProductsV будет последний элемент массива $selectedProductsV. Потому что в цикле foreach значение $ProductsV при каждой итерации переписывается. Тоже самое и в других циклах.
1
0 / 0 / 0
Регистрация: 05.12.2023
Сообщений: 3
05.12.2023, 10:01  [ТС]
Выводила полученные числа через echo, они совпадают с id, выбранных товаров. Мне кажется что проблема в привязке, но какая не понимаю
0
Эксперт PHP
 Аватар для liris
4385 / 1025 / 154
Регистрация: 16.01.2023
Сообщений: 2,549
05.12.2023, 10:51
Лучший ответ Сообщение было отмечено aaaryaaa как решение

Решение

Цитата Сообщение от aaaryaaa Посмотреть сообщение
Мне кажется что проблема в привязке, но какая не понимаю
У вас ошибка, что вы пытаетесь подставлять несколько значений в один запрос. Если вы хотите вставить несколько строк - нужно несколько запросов (ну точнее выполнение одного и того же запроса в цикле).

В целом по скрипту вижу, что вы очень сильно плаваете в теме циклов, рекомендую освежить и углубить знания по этой теме.

Не понял смысла вот этого действия:

PHP
1
2
3
4
5
6
7
$id_videocart = $_POST['ProductsV'];
$id_processor = $_POST['ProductsP'];
$id_operativ = $_POST['ProductsO'];
$id_motherboard = $_POST['ProductsM'];
$id_hdd = $_POST['ProductsH'];
$id_blocpit = $_POST['ProductsB'];
$id_corpus = $_POST['ProductsK'];
Добавлено через 3 минуты
Цитата Сообщение от aaaryaaa Посмотреть сообщение
Выводила полученные числа через echo, они совпадают с id, выбранных товаров
Что у вас в $selectedProductsV? Я не думаю, что там массив, но вы используете код для переборки массива.

PHP
1
2
3
4
foreach ($selectedProductsV as $productId) {
    
    $ProductsV = $productId;
}
Если все у вас там несколько значений и вы хотите их перебрать и переложить в другой массив (зачем?), то нужно так:

$ProductsV[] = $productId;
1
05.12.2023, 18:26

Не по теме:

Цитата Сообщение от liris Посмотреть сообщение
Если все у вас там несколько значений и вы хотите их перебрать и переложить в другой массив (зачем?), то нужно так:
$ProductsV[] = $productId;
Не, то надо так
PHP
1
$ProductsV = $selectedProductsV;
Зачем вообще перебирать тут что-то?

0
0 / 0 / 0
Регистрация: 05.12.2023
Сообщений: 3
05.12.2023, 19:49  [ТС]
Спасибо, теперь хотя-бы знаю в чем ошибка. Про смысл действия, мне сказали что так нужно делать и это правильно? Не знаю по этому поводу. В $selectedProductsV хранится одно число (id видеокарты в данном случае).
0
Эксперт PHP
 Аватар для liris
4385 / 1025 / 154
Регистрация: 16.01.2023
Сообщений: 2,549
05.12.2023, 20:58
Цитата Сообщение от aaaryaaa Посмотреть сообщение
мне сказали что так нужно делать
Вы должны понимать, что делает каждая строчка вашего скрипта, по каждой строчке вы обязаны знать ответы на вопросы:

- зачем она нужна?
- что она делает?
- как она работает?
- можно ли реализовать иначе?
- можно ли обойтись без этой строчки? (что изменится, если удалить эту строку?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2023, 20:58
Помогаю со студенческими работами здесь

Считать таблицу товаров на складе, переписать в другую таблицу, добавив колонку размерностей товара, а также подсчёт общ
.Считать таблицу товаров на складе, переписать в другую таблицу, добавив колонку размерностей товара, а также подсчёт общего количества и...

Дан текстовый файл, представляющий собой таблицу стоимости товаров, состоящий из записей вида 26.05. Вывести таблицу на экран,
привет, господа хаккеры....у меня код не получается(((( парюсь с этими копейками и рублями....ПОМОЖИТЕ ХТО МОЖЕТ.... Дан текстовый...

Добавление новой записи в таблицу и осуществление запроса на добавление при загрузке формы
Здравствуйте. Есть одна просьба, подскажите как сделать или пример кода покажите на вот такую фишку, при открытии формы для ввода данных в...

Добавление записей в таблицу и связанную с ней таблицу, с учётом связи
Имеются 3 таблицы: кабинет id_cab n_cab устройства ...

Добавление поля в таблицу через запрос на добавление
Здравствуйте, подскажите как создать запрос, чтобы к таблице добавить еще одно поле. Поля, не записи. Тип запроса Добавление....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru