for문으로 update 쿼리문 질문 드려요
본문
안녕하세요
아래처럼 값이 있습니다
1 a,b,c
2
3 가,나,다
4
5 바나나,사과,복숭아
그래서 이렇게 for문으로 update 쿼리를 넣었는데.....
$text = array('1111','2222','3333','4444','5555');
for($i=0;$i<count($text);$i++){
$sql = "update test set wr_12 = concat( wr_12, '".implode(',', $text)."' ) ";
}
array값이 나눠서 추가 되는게 아니고 한번에 다 들어갑니다..
아래처럼 나눠서 순차적으로 넣고 추가하고싶습니다
1 a,b,c,1111
2 2222
3 가,나,다,3333
4 4444
5 바나나,사과,복숭아,5555
조금만 알려주시면 감사하겠습니다 ㅠㅠ
답변 4
test라는 테이블에서
Key 값으로 사용할 정보는 무엇인가요?
보통 test가 게시판을 의미하는것이라면
wr_id 정보가 있을텐데 위의
1 a,b,c,1111
2 2222
3 가,나,다,3333
4 4444
5 바나나,사과,복숭아,5555
에서
맨 앞칸의
1
2
3
4
5
가 wr_id라고 한다면
<?php
$text = array(
'1' => 'a,b,c,1111'
, '2' => '2222'
, '3' => '가,나,다,3333'
, '4' => '4444'
, '5' => '바나나,사과,복숭아,5555'
);
$text_key = array_keys($text); // 키 정보 추출 위에 설명한 wr_id를 배열정보로 인식한다는가정
for ($i=0; $i < count($text); $i++) {
$sql = "update text set wr_12 = '{$text[$i]}' where wr_id = '{$text_key[$i]}' ";
sql_query($sql);
}
?>
!-->
그냥 $test[$i] 하면됩니다
implode 빼세여
where 조건이 들어가지 않으면 모든 레코드가 업데이트됩니다.
$text = array('1111','2222','3333','4444','5555');
for ($i = 0;$i < count($text); $i++){
$sql = "update test set wr_12 = concat( wr_12, ',". $text[$i] ."') where left(wr_12, 1) = '" . ($i + 1) . "' ";
}
$text = array(
'1' => 'a,b,c,1111'
, '2' => '2222'
, '3' => '가,나,다,3333'
, '4' => '4444'
, '5' => '바나나,사과,복숭아,5555'
);
foreach( $text as $id=>$val) {
$sql = "update text set wr_12 = '{$val}' where wr_id = '{$id}' ";
$result=mysqli_query($conn,$sql);
}