PHP-код ниже получает результаты из формы и вставляет их в таблицу.
Я должен использовать эту структуру таблицы, где каждая строка соответствует другому значению из формы, например First Name.
Я написал код ниже, но это громоздко. Можете ли вы помочь мне лучше? Спасибо, кучи!
$lists = $_POST['form']['lists'][0]; $first_name = $_POST['form']['first_name']; $last_name = $_POST['form']['last_name']; $idu = $db->insertid(); $db->setQuery("INSERT INTO #__rsmail_subscriber_details (`IdList`, `FieldName`, `FieldValue`, `IdSubscriber`) VALUES ('" . $db->getEscaped($lists) . "', 'First Name' , '" . $db->getEscaped($first_name) . "', '" . $db->getEscaped($idu) . "')"); $db->query(); $db->setQuery("INSERT INTO #__rsmail_subscriber_details (`IdList`, `FieldName`, `FieldValue`, `IdSubscriber`) VALUES ('" . $db->getEscaped($lists) . "', 'Last Name' , '" . $db->getEscaped($last_name) . "', '" . $db->getEscaped($idu) . "')"); $db->query();
Вы можете выполнить объемную вставку:
INSERT INTO table (field1, field2) VALUES ('val1', 'val2'), ('val3', 'val4'), ...
В вашем случае это что-то вроде:
$db->setQuery("INSERT INTO #__rsmail_subscriber_details (`IdList`, `FieldName`, `FieldValue`, `IdSubscriber`) VALUES ('".$db->getEscaped($lists)."', 'First Name' , '".$db->getEscaped($first_name)."', '".$db->getEscaped($idu)."'), ('".$db->getEscaped($lists)."', 'Last Name' , '".$db->getEscaped($last_name)."', '".$db->getEscaped($idu)."')");
Чтобы ответить на ваш вопрос SQL:
INSERT INTO `table` (foo, bar) VALUES (1, 2), (3, 4), (5, 6), (7, 8)
Что касается вашего PHP-кода, сжечь его и начать все заново. Это воняет проблемами безопасности и плохими практиками.