Я согласен с вами, что это просто. Возможно, это ответит на ваши вопросы.
Я предполагаю, что в вашей форме есть флажки или поле множественного выбора, позволяющее пользователю выбирать категории для своего бизнеса. И что атрибут «значение» флажка / выбора установлен на идентификатор категории, как хранится в таблице categories
. Итак, теперь, когда форма отправлена, вы получите в сценарии PHP вместе с другими входными данными формы массив с идентификаторами категорий, выбранных пользователем. Давайте назовем это $ _POST ['category']
МЕТОД 1 :
а. Запустите запрос - INSERT INTO business
...
б. прочитайте идентификатор последней записи, внесенной в таблицу business
, используя mysql_insert_id
или mysqli->insert_id
, в зависимости от того, используете ли вы библиотеку MySQL или MySQLi. Предположим, вы храните этот идентификатор в $busId
с. Из $ _POST ['category'] создайте строку через запятую, используя implode()
. Предположим, вы храните эту строку в $strCategories
* * 1 022 д.
INSERT INTO `tbl_works_categories` (`bus_id`, `category_id`)
SELECT $busId, `category_id`
FROM `categories`
WHERE `category_id` IN ($strCategories);
МЕТОД 2 :
В качестве альтернативы, вы также можете перебрать массив POST и сгенерировать запрос INSERT, например:
$q = '';
if (!empty($_POST['categories'])) {
$q = 'INSERT INTO `tbl_works_categories` (`bus_id`, `category_id`) VALUES ';
foreach ($_POST['categories'] as $categoryId) {
$q .= '(' . $busId . ', ' . $categoryId . '),';
}
}
$q = trim($q, ','); // to remove the trailing comma
if (!empty($q)) {
// execute query $q
}
Надеюсь, что выше поможет. Я не тестировал ни один из приведенных выше кодов, поэтому вам может потребоваться отладка, если что-то сломалось. Пожалуйста, не стесняйтесь спрашивать, если у вас есть какие-либо вопросы.