Добрый вечер, прекрасные люди,PHP MySQL Вставка нескольких массивов
У меня возникли проблемы с моим запросом. Запрос должен вставить каждый продукт, который вводится на странице. Моя таблица продукты имеет 4 поля: id, product_name, количество и цена.
HTML, выглядит как это:
<form action="" method="post">
Product name: <input type="text" name="product_name[]" value="" />
Quantity: <input type="text" name="quantity[]" value="" />
Price: <input type="text" name="price[]" value="" /> <br /> <br />
<input type="submit" name="submit" value="Insert new products" />
</form>
Я хочу, чтобы мои пользователи, чтобы иметь возможность добавлять новые продукты в нашей таблице базы данных продукции. Кстати, я создал функцию javascript, которая добавляет больше полей в форму, поэтому мои сотрудники не должны отправлять форму каждый раз, когда он или она хочет добавить новый продукт, но вместо этого просто добавить столько полей, которые он или она необходимо представить. Надеюсь, вы поймете, о чем я говорю :)
Поскольку я не являюсь экспертом в области PHP-кодирования, то я пробовал самостоятельно, что в моем случае не срабатывало особенно хорошо. Конечно, я читал некоторые статьи в Интернете о запросе данных массива, но, к сожалению, не повезло.
До сих пор, код PHP выглядит следующим образом:
<?
if(isset($_POST['submit'])){
$product_name = addslashes($_POST['product_name']);
$quantity = addslashes($_POST['product_name']);
$price = addslashes($_POST['product_name']);
$db->query("INSERT INTO products (product_name, quantity, price) VALUES ('".$product_name."', '".$quantity."', '".$price."')");
}
?>
Если мои сотрудники должны вставить каждый продукт один за другим это не было проблемой. Но так как они могут добавить больше полей в форму, это становится проблемой.
Надеюсь, есть логическое объяснение, но я не могу понять это самостоятельно. И, конечно, я знаю, что я не избежал переменных, но этот код предназначен только для тестирования. У вас хорошие вечерние люди :)
'addslashes' является довольно слабой формой защиты от SQL инъекций. – kapa
Ваши данные '$ _POST' - это массив - вам нужно будет перебирать его, поэтому лучше всего искать [' for() '] (http://www.php.net/for) или [' foreach () '] (http://www.php.net/foreach) – kero
Вы можете найти учебники по вставке данных из мультиселектов, которые очень похожи на то, что вы пытаетесь сделать. См. Например, [этот вопрос] (http://stackoverflow.com/questions/15509742/php-multiple-select-form-to-insert-multiple-rows-in-mysql) –