채택완료

sql구문에서 '아닌것' 질문입니다.

2017-09-29 (금) 13:49:39 2,220

$sql = " update {$g5['board_new_table']} 

set addarea = '기간만료', mb_id = '".$list[$i]['name'].",기간만료' 

where 

ch_date < '".G5_TIME_YMD."'  and addarea != '기간만료' ";

이렇게 하니까 적용은 됩니다.

근데 $list[$i]['name'] 이부분에 아이디는 남아 있어야 하거든요,,


예) 홍길동 작업중 에서

홍길동 기간만료


이렇게 뒤에만 바뀌어야 하거든요..


가능한가요?ㅠ.ㅠ.ㅠ.ㅠ.ㅠ.ㅠㅠ.

|

답변 2개 / 댓글 4개

채택된 답변
+20 포인트

mb_id = mb_id || '기간만료'  또는

mb_id = concat(mb_id,'기간만료')

답변에 대한 댓글 4개

mb_id = concat(mb_id,'기간만료')

이렇게 하니까 되긴 된느데,,

기간만료가 추가가 되버리네요..

홍길동작업중기간만료 이런식으로요,,
아하.. ^^

mb_id = REPLACE(mb_id, '작업중','기간만료')

반대는

mb_id = REPLACE(mb_id, '기간만료','작업중')

이렇게 하시면 되겠네요
이게 작업중만 있는게 아니라서요,,,,, 승인대기, 승인완료, 승인거부, 작업완료 이렇게 4개가 더있습니다..
ㅠ.ㅠ.ㅠ. 죽을맛이네요 진짜
아하.. 이거 총체적인 문젠데요...

말만들어도 간단히 해결될거 같지 않은 예감같은 예감...

// 언급하신 조건 ---------------


sql = " update {$g5['board_new_table']} 

set addarea = '기간만료', mb_id = '".$list[$i]['name'].",기간만료' 

where 

ch_date < '".G5_TIME_YMD."'  and addarea != '기간만료' "; 


이렇게 하니까 적용은 됩니다.

근데 $list[$i]['name'] 이부분에 아이디는 남아 있어야 하거든요,,


예) 홍길동 작업중 에서

홍길동 기간만료


이렇게 뒤에만 바뀌어야 하거든요..

이게 작업중만 있는게 아니라서요,,,,, 승인대기, 승인완료, 승인거부, 작업완료 이렇게 4개가 더있습니다..  

//------------------------------


위 내용에서 보면, $list[$i]['name'] 에 아이디는 남아야 한다

라는 내용과

쿼리의 

mb_id = '".$list[$i]['name'].",기간만료'

의 내용이 서로 안맞는거 같습니다. 

// mb_id에 name과 텍스트를 넣는것과
name에 id가 들어있다는것이 좀 애매합니다.
역으로

$mb_name = $list[$i][mb_id] . "기간만료";
이런 구조가 되어야 하는거 아닌지..

----------------------위의것은 의견이고

-----아래는 처리방법 --- 질문에 있는 패턴대로
// 홍길동 작업중
// 홍길동 기간만료 
두개의 공통적인 구분자는 ' ' 공백으로 판단합니다.
<?php
$names = explode(' ',$list[$i]['name'];
$workchk = array('작업중','승인대기','승인중','반려');  //상태값배열로 확인대상

$status = "승인완료";  // 기본상태
if (in_array($names[1], $workchk))   //상태값 체크
$status = '작업중';   // 상태값 변경대상일대 변경

$newname = $names[0].' '.$status;  // 이름과 상태값 문자열 

$sql = " update {$g5['board_new_table']} 

set addarea = '기간만료', mb_id = '{$newname}' 

where 

ch_date < '".G5_TIME_YMD."'  and addarea != '기간만료' ";


와 같이 하신후 

상태값이던 원하는 문구던 원하시는구조로 처리가 가능할듯 싶네요



답변을 작성하려면 로그인이 필요합니다.