sql insert를 여러개 만드는 방법
본문
안녕하세요
제가 구독하는 시스템을 만들어서
나를 구독한사람을 mb_4에 배열로 만들었습니다. -> $subs
글을 쓸때 나를 구독한 사람에게 알림을 가게 해주고 싶은데
그누 알림을 설치하고 작동원리는 대충 알게되었습니다.
$sql = " insert into ".$this->db_table."
set ph_to_case = '".$ph_to_case."',
ph_from_case = '".$ph_from_case."',
bo_table = '".$board['bo_table']."',
rel_bo_table = '".$board['bo_table']."',
wr_id = '{$wr['wr_id']}',
rel_wr_id = '{$wr_reply['wr_id']}',
mb_id = '{$wr['mb_id']}',
rel_mb_id = '{$wr_reply['mb_id']}',
rel_mb_nick = '$rel_mb_nick',
rel_msg = '".sql_real_escape_string(cut_str(strip_tags($wr['wr_content']), 70))."',
parent_subject = '".sql_real_escape_string($tmp_wr_subject)."',
rel_url = '".$tmp_url."',
ph_readed = 'N',
ph_datetime = '".G5_TIME_YMDHIS."',
wr_parent = '{$wr['wr_id']}' ";
$result = sql_query($sql, false);
if( ! $result ){
$this->db_create();
}
$this->mb_noti_count_update($wr['mb_id']);
위 구문이 원래 알림을 전달해주는 구문인데
mb_id = '{$wr['mb_id']}',
부분에 $subs 라는 내 구독자들의 id배열( Array ( [0] => test1 [1] => test2 ) )을 넣어
글 하나쓸때 여러명에게 전달되게(noti db에 나머진 같고 mb_id변수만 $sub배열로 바뀌어서 $subs의 개수만큼 기록되야함) 하고싶은데 db에 약해서 힘드네요..ㅠ ㅠ
foreach를 써야하는것 같은데
구문에 약해서 도움을 요청드립니다 ㅠ ㅠ
!-->
답변 2
<?php
foreach ($subs as $r) {
$sql = " insert into ".$this->db_table."
set ph_to_case = '".$ph_to_case."',
ph_from_case = '".$ph_from_case."',
bo_table = '".$board['bo_table']."',
rel_bo_table = '".$board['bo_table']."',
wr_id = '{$wr['wr_id']}',
rel_wr_id = '{$wr_reply['wr_id']}',
mb_id = '{$r}',
rel_mb_id = '{$wr_reply['mb_id']}',
rel_mb_nick = '$rel_mb_nick',
rel_msg = '".sql_real_escape_string(cut_str(strip_tags($wr['wr_content']), 70))."',
parent_subject = '".sql_real_escape_string($tmp_wr_subject)."',
rel_url = '".$tmp_url."',
ph_readed = 'N',
ph_datetime = '".G5_TIME_YMDHIS."',
wr_parent = '{$wr['wr_id']}' ";
$result = sql_query($sql, false);
if (!$result ) {
$this->db_create();
}
$this->mb_noti_count_update($r);
}
https://dev.mysql.com/doc/refman/8.0/en/insert.html
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3), (4,5,6), (7,8,9);
이런 형태도 있습니다.
답변을 작성하시기 전에 로그인 해주세요.