powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Insert массива в бд
7 сообщений из 7, страница 1 из 1
Insert массива в бд
    #37893828
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте. Столкнулся с такой ситуацией. Есть таблица в бд по определнным условиям получаю из нее массив данных затем мне этот массив нужно занети в другую таблицу. Проблема заключается в том что при инсерте у меня заноситься только одна запись, как занести все записи? Делаю так.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<?
$query="  SELECT DISTINCT u.CNT_USER, u.CNT_USER,  v.c_nm,  p.ID                  
 FROM T_US_OP u, T_US_PERIOD p, V_UNION v
   WHERE     ID = '".$_POST['close_id_val']."'
         AND u.DATE_CR BETWEEN p.DATE_START AND p.DATE_END
         AND v.cnt = U.CNT_USER
GROUP BY u.CNT_USER,
         u.DATE_CR,
         u.DATA_LAST,
         p.ID,
         p.DATE_START,
         p.DATE_END,
         v.cnt,
         v.c_nm";
		$statement = oci_parse ($conn, $query);
	if	(oci_execute ($statement)){
		while ($r = oci_fetch_array ($statement, OCI_ASSOC)){
			
	 $per_id = $r['ID'] ; --- получил массив
            $usr_cnt = $r['CNT_USER']; -- получил массив
	 
	      }
		echo $q="INSERT INTO T_US_PODPIS  (ID_PERIOD ,CNT_USER , READY) VALUES('".$usr_cnt."','".$per_id."', '1' )";
		 $statement = oci_parse ($conn, $q); 
		 oci_execute ($statement);	
		    	
	}

.
?>
а при INSERT
Код: plsql
1.
'".$usr_cnt."'

и '
Код: plsql
1.
".$per_id."'

- вставлется только одно занчение а не массив. Подскажите как это реализовать?
...
Рейтинг: 0 / 0
Insert массива в бд
    #37893911
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
androidx,

Код: php
1.
2.
$per_id = $r['ID'] ; --- получил массив
            $usr_cnt = $r['CNT_USER']; -- получил массив



это ты в цикле не получил массив, а переписал переменную кучу раз, в итоге вставляешь в базу последнее значение, которое записалось в переменные per_id и usr_cnt.

и вставляешь походу не туда
Код: php
1.
$q="INSERT INTO T_US_PODPIS  (ID_PERIOD ,CNT_USER , READY) VALUES('".$per_id."', '".$usr_cnt."', '1' )";


вот так может правильней будет?

Код: php
1.
2.
$per_id[] = $r['ID'] ; --- теперь получил массив
            $usr_cnt[] = $r['CNT_USER']; -- теперь получил массив
...
Рейтинг: 0 / 0
Insert массива в бд
    #37893978
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnogu,

Попробовал сделать как вы сказали в итоге получил следующее:
Код: php
1.
2.
 $per_id[] = $r['ID'] ;
$usr_cnt[] = $r['CNT_USER'];


Код: sql
1.
2.
3.
$q="INSERT INTO T_US_PODPIS  (ID_PERIOD ,CNT_USER , READY) VALUES('".$usr_cnt."','".$per_id."', '1' )";
		 $statement = oci_parse ($conn, $q); 
		 oci_execute ($statement);



Ехом вывел Insert в ответ получил
Код: sql
1.
INSERT INTO T_US_PODPIS (ID_PERIOD ,CNT_USER , READY) VALUES('Array','Array', '1' )

Может есть идеи по этому поводу, как это победить?
...
Рейтинг: 0 / 0
Insert массива в бд
    #37893998
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
androidx,

Код: php
1.
$q="INSERT INTO T_US_PODPIS  (ID_PERIOD ,CNT_USER , READY) VALUES('".implode(",", $usr_cnt)."','".implode(",", $per_id)."', '1' )";
...
Рейтинг: 0 / 0
Insert массива в бд
    #37894020
androidx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SharuPoNemnogu,

Спасибо тебе большое!
...
Рейтинг: 0 / 0
Insert массива в бд
    #37894057
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а теперь идем читать про prepared statement в оракле.
http://php.net/manual/en/function.oci-parse.php
...
Рейтинг: 0 / 0
Insert массива в бд
    #37896878
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем использовать PHP когда можно все через базку сделать? вы же одтн и тот же коннект юзаете - следовательно база одна и та же.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
INSERT INTO T_US_PODPIS  (ID_PERIOD ,CNT_USER , READY)
SELECT DISTINCT u.CNT_USER, p.ID, 1                  
 FROM T_US_OP u, T_US_PERIOD p, V_UNION v
   WHERE     ID = '".$_POST['close_id_val']."'
         AND u.DATE_CR BETWEEN p.DATE_START AND p.DATE_END
         AND v.cnt = U.CNT_USER
GROUP BY u.CNT_USER,
         u.DATE_CR,
         u.DATA_LAST,
         p.ID,
         p.DATE_START,
         p.DATE_END,
         v.cnt,
         v.c_nm
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Insert массива в бд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]