Надоумьте пожалуйста.
Есть таблица works_completed
id int(8)
date_of_performance timestamp CURRENT_TIMESTAMP
courier varchar(50)
ID - ключ
Написал вот такую формочку works_completed_form.php
<form action="works_completed_form.php" method="post">
<p>Введите до 30 номеров накладных через Enter:</p>
<p><textarea cols="7" rows="30" name="id" id="id"></textarea>
Курьер<SELECT NAME="courier" id="courier">
<?php
require("../include/kuriers.txt")
;?>
<OPTION value="Не указан" SELECTED>Не указан
</SELECT>
<p><INPUT TYPE="submit" name="insert" VALUE="Готово!"></p>
</form>
Пытаюсь сделать следующий алгоритм.
В <textarea name="id" id="id"> сканируются номера накладных, через enter.
Далее из списка выбирается курьер.
По нажатию "Готово", в базе создаются записи с ID внесенными в textarea, а в поле courier всем этим записям ставится выбраный курьер.
Опции.
Удалять из списка внесенных номеров возможные символы (должны быть цыфры) и перенос на новую строку.
Пока у меня вот такой код
include "../config.php";
if (isset($_POST['insert'])) {
$courier = mysql_real_escape_string($_POST['courier']);
$id = array_map(
create_function('$v', 'return intval($v);'),
explode(' ', $_POST['id']));
$numbers = array();
foreach($id as $n){
$numbers []= "($n, '$courier')";
}
$query = "INSERT INTO `works_completed`
(`id`, `courier`)
VALUES ".implode(',', $numbers)." ON DUPLICATE KEY UPDATE
courier = '$courier'";
echo $query;
mysql_query($query)or die(mysql_error());
}
Не знаю верное ли это решение. Да и не фильтрует оно от символов.
Плюс вносится только первый номер в списке.
Подскажите, пожалуйста.
Может есть варианты проще?
Спасибо.