insert несколько id из масива

Gfdadf

Новичок
Доброго дня.
Подскажите, пожалуйста.
Есть table1
id, text1, text2, text_n
Из него я делаю выборку по id.

Есть поле <textarea> в которое через энтер вносятся номера.
Дальше, постом летит на обработку.
PHP:
$invoices = $_POST['invoices'];
          
            $invoices = explode("\n", $invoices);
          
      
          
            $invoices = array_unique($invoices);
как правильно пишется запрос, чтобы внести все номера из массива в table2 вида

invoice_id, text1, text2, text_n, где invoice_id это перебранные значения массива invoices, а text1, text2, text_n идут из запроса по table1.

Понимаю, что через implode но никак правильно не получается сформировать запрос.

П.С. Нужно еще учесть, что в массив могут внести всего один номер.


Немножко дополнюсь.
Код странички вот такой
PHP:
if (isset($_POST['add']))
    {
        $result = mysql_query("SELECT * FROM table1 WHERE nomer = '$_POST[id]'");//запрос из первой таблицы. 
      
        if(!empty($_POST['invoices']))//если в поле внесены номера или номер
        {
            echo "Внесены номера наклыдных";
            print_r ($invoices);

//вот тут нужен запрос виде
// * значения из первого запроса.
//** перебранные значения из массива.
$q = "INSERT INTO table 2 (invoice_id, text1, text2, text_n) VALUES(invoice_id**, text1*, text2*, text_n*);
        }
        else
        {
            echo "А накладные не введены.";
        }
    }
HTML:
<form action="#" method="post">
<input type="hidden" name="id" value="<?=$row['nomer'];?>">
<TEXTAREA type="text" NAME="invoices" id="notes" ROWS=30 COLS=7></TEXTAREA><input type="submit" name="add" value="Добавить" />
</form>
И как можно написать условие "Если invoice_id уже существует" - обновить.
 

Gfdadf

Новичок
Есть таблица1
id, text, text2

Есть таблица2
inv_id, data, data2

Есть поле, в которое через Enter вносятся номера накладных.
Например ввели 123456 и 654321

Нужно, чтобы по нажатию кнопки в таблицу 2 вставилось две (в зависимости от количества внесенного в поле) строки.
inv_id = 123456, data = text, data2 = text2
inv_id = 654321, data = text, data2 = text2
 

AnrDaemon

Продвинутый новичок
Уже лучше, начинаете близко к понятному объяснять. Ещё немного усилий, и у вас будет готовое задание. А там и до решения рукой подать.
 

Gfdadf

Новичок
Уже лучше, начинаете близко к понятному объяснять. Ещё немного усилий, и у вас будет готовое задание. А там и до решения рукой подать.
я уже докумекал и сделал вот так
  1. if (isset($_POST['add']))
  2. {
  3. if(!empty($_POST['invoices']))
  4. {
  5. $string = trim($_POST['invoices']);
  6. $massiv = explode("\r\n", $string);
  7. echo "Внесены номера наклыдных";
  8. print_r ($massiv);
  9. foreach ($massiv as $key=>$massiv)
  10. {
  11. $b = mysql_query("select fio_otp, fio_pol from zakazy where nomer = 41");
  12. while($row_data = mysql_fetch_array($b))
  13. {
  14. $a = "REPLACE INTO invoices (invoice_id,fio_otp,fio_pol) VALUES('$massiv','$row_data[fio_otp]','$row_data[fio_pol]')";
  15. }
  16. echo $a;
  17. //$add = mysql_query($a) or die(mysql_error());
  18. }
  19. }
  20. else
  21. {
  22. echo "А накладные не введены.";
  23. }
  24. }
Но это не дело. Если прилетит через пост 30 номеров, то это будет 30 запросов. Нужн как-то это оптимизировать.
 

AnrDaemon

Продвинутый новичок
Не нужно.
1. Вы не дамп БД заливаете.
2. Я не знаю, какая у вас на самом деле стоит задача, но делать REPLACE в финансовых запросах я бы строго не рекомендовал.
Делайте INSERT и проверяйте результаты каждого запроса.
 
Сверху