Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: insert несколько id из масива [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
Wisterman
Отправлено: 04 Августа, 2014 - 17:59:31
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2014  


Помог: 0 раз(а)




Tyoma5891 пишет:
Wisterman пишет:

Вообще не догоняю, что это за запрос такой получается.

потому что Вы не можете четко сформулировать то что Вам нужно(мы не должны вытягивать все из Вас по кускам), то что Вам требуется не спеша, последовательно...

Я ж вроде стараюсь)))

Есть таблица 1
id text1 text2

Есть таблица 2
invoice_id pole1 pole2

В таблице 1 есть строка
1 текст1 текст2

Дальше, есть текстареа в которую через энтер вносят номера накладных.
Ввели штук 10. Нажали кнопочку ОК.
Нужно чтобы в таблице 2 появились 10 записей где рознятся только invoice_id (мы их ввели в текстареа)
а поля pole1 и pole2 равнялись text1 и text2 из первой таблицы.

Пример. В текстареа ввели 111(энтер)222(энтер)333(энтер).
По нажатию на кнопку ОК в таблице 2 должно появиться три тсрочки
invoice_id (111) pole1(текст1) pole2(текст2)
invoice_id (222) pole1(текст1) pole2(текст2)
invoice_id (333) pole1(текст1) pole2(текст2)

как=-то так)
 
 Top
esterio
Отправлено: 04 Августа, 2014 - 18:44:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




а откуда взялись текст1 и текст2. ок там одна строчка, а если их много будет, то как тогда?
 
 Top
Wisterman
Отправлено: 04 Августа, 2014 - 19:05:52
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2014  


Помог: 0 раз(а)




esterio пишет:
а откуда взялись текст1 и текст2. ок там одна строчка, а если их много будет, то как тогда?

через GET приходит id строки первой таблицы из которой нужно брать текст1 и текст2
 
 Top
Wisterman
Отправлено: 05 Августа, 2014 - 11:25:18
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2014  


Помог: 0 раз(а)




пытаюсь как-то вот так
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['add']))
  2.     {
  3.        
  4.        
  5.         if(!empty($_POST['invoices']))
  6.         {
  7.             $string = trim($_POST['invoices']);
  8.             $massiv = explode("\r\n", $string);
  9.             echo "Внесены номера наклыдных";
  10.             print_r ($massiv);
  11.             foreach ($massiv as $key=>$massiv)
  12. {
  13.      $a = "REPLACE INTO invoices  (invoice_id,fio_otp,fio_pol) VALUES('$massiv') select fio_otp, fio_pol from zakazy where nomer = 41";
  14. echo $a;
  15. $add = mysql_query($a) or die(mysql_error());
  16. }
  17.         }
  18.         else
  19.         {
  20.             echo "А накладные не введены.";
  21.         }
  22.     }

Но ясен красен, что это не работает.
(Добавление)
Вроде справился. Но это костыль.
PHP:
скопировать код в буфер обмена
  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. }

Но если в $_POST['invoices'] прилетит 30 номеров, это будет 30 запросов.
Как можно это дело оптимизировать?
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB