어제 질문했던 sql 쿼리 채택완료
어제 질문 했었는데요..
플래토님이 친절하게 답변 달아주셨지만
</p>
<p>$table_arr = array( "g5_member", "g5_memo", "g5_point", "g5_write_free", "g5_write_notice", "g5_write_rwmo", "g5_write_lottos", "g5_write_auction", "g5_write_stocks", "g5_write_in_offic", "g5_write_regViewList", "g5_qa_content", "q_stock_own");
foreach ($table_arr as $tbl) {
$sql = "update {$tbl}
set mb_id = '{$strq}',
mb_nick = '{$strq}',
po_rel_id = '{$strq}',
me_send_mb_id = '{$strq}'
where mb_id = '{$username}' ";
sql_query($sql);
}
이렇게 작성하니까 작동을 안하더라구요.. 뭐가 문제일까요?
다른거 보니까 $g5['member_table'] 이렇게 쓰던데 $g5['member_table'], $g5['memo_table'] 이렇게 쓰니까 500 에러뜨고.. ㅠㅠ 어디가 문제일까요..? 도와주세요 ㅠㅠ
답변 5개
실수가 있었습니다.
</p>
<pre>
<code>if({$tbl} == "g5_member"){
$sql = "update {$tbl}
set mb_id = '{$str}', mb_nick = '{$str}'
where mb_id = '{$username}' or mb_nick = '{$username}' ";
}</code></pre>
<p><code>
이렇게 해주셔야 하는건데
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
이렇게 해주시면 어떨가요?
</p>
<p>$table_arr = array( "g5_member", "g5_memo", "g5_member", .... , "g5_qa_content", "q_stock_own");</p>
<p>foreach ($table_arr as $tbl) {</p>
<p> if({$tbl} == "g5_member"){</p>
<p> $sql = "update {$tbl} </p>
<p> set mb_id = '{$str}', me_send_mb_id = '{$str}'</p>
<p> where mb_id = '{$username}' or mb_nick = '{$username}' ";</p>
<p> }</p>
<p> if({$tbl} == "g5_memo"){</p>
<p> $sql = "update {$tbl} </p>
<p> set me_send_mb_id = '{$str}'</p>
<p> where me_send_mb_id = '{$username}' ";</p>
<p> }</p>
<p> if({$tbl} == "g5_point"){</p>
<p> $sql = "update {$tbl} </p>
<p> set mb_id = '{$str}', po_rel_id = '{$str}'</p>
<p> where mb_id = '{$username}' or po_rel_id = '{$username}' ";</p>
<p> }else{</p>
<p> $sql = "update {$tbl} </p>
<p> set mb_id = '{$str}'</p>
<p> where mb_id = '{$username}' ";</p>
<p> }</p>
<p> sql_query($sql);</p>
<p>}</p>
<p>
좀 복잡하지만 필드를 구분하자면...
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
일단..
loop 돌려서 update query 실행하시는데 $tbl은 table명이 대입될거고..
근데 $strq, $username 등의 변수값은 위에 정의되어 있나요?
그외에 변수는 정의가 안되있어서 동작이 안되겠지요~~
그리고 table마다 컬럼이 다 다르니..
table별로 query문전체를 구분하시든 아니면 필드를 구분해주셔야 할거같아요~~
댓글을 작성하려면 로그인이 필요합니다.
"g5_member", "g5_memo", "g5_point", "g5_write_free", "g5_write_notice", "g5_write_rwmo", "g5_write_lottos", "g5_write_auction", "g5_write_stocks", "g5_write_in_offic", "g5_write_regViewList", "g5_qa_content", "q_stock_own"
g5_point를 제외한 테이블들엔 po_rel_id, me_send_mb_id 란 컬럼이 없을텐데요..
지금 돌리시는 쿼리문은
g5_member, g5_member, g5_point 등등.. 테이블들에서 po_rel_id, me_send_mb_id 값을 변경해주는 구문인데 앞서 말씀드리듯 g5_member,g5_memo.... 테이블들에는 해당 컬럼이 없기때문에 실행이 안되는것 같습니다.
답변에 대한 댓글 1개
포인트 처럼 po_rel_id 같은거는 어떻게 작성해야 하나요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인