고수님들의 지원이 필요합니다. 도와주십시요.
wr_1 ` wr_4 중에 모두 업데이트되는데 그 중 wr_2, wr_4만 내용을 더하고 싶습니다.
$exist_row = sql_fetch(" SELECT wr_id FROM $write_table WHERE wr_subject = '$wr_subject' ORDER BY wr_id DESC LIMIT 1 ");
if ($exist_row['wr_id']) {
// 이미 존재하는 글 → 값이 있는 여분필드만 UPDATE
$set_arr = array();
if ($wr_1 !== '') $set_arr[] = "wr_1 = '$wr_1'";
if ($wr_2 !== '') $set_arr[] = "wr_2 = '$wr_2'";
if ($wr_3 !== '') $set_arr[] = "wr_3 = '$wr_3'";
if ($wr_4 !== '') $set_arr[] = "wr_4 = '$wr_4'";
if (count($set_arr) > 0) {
sql_query(" UPDATE $write_table SET " . implode(', ', $set_arr) . " WHERE wr_id = '{$exist_row['wr_id']}' ");
}
$update_count++;
} else {
// 새 글 INSERT
$wr_num = get_next_num($write_table);
$wr_option = $html;
$wr_seo_title = exist_seo_title_recursive('bbs', generate_seo_title($wr_subject), $write_table, $wr_id);
wr_1 ` wr_4 중에 모두 업데이트되는데 그 중 wr_2, wr_4만 내용을 더하고 싶습니다.
$exist_row = sql_fetch(" SELECT wr_id FROM $write_table WHERE wr_subject = '$wr_subject' ORDER BY wr_id DESC LIMIT 1 ");
if ($exist_row['wr_id']) {
// 이미 존재하는 글 → 값이 있는 여분필드만 UPDATE
$set_arr = array();
if ($wr_1 !== '') $set_arr[] = "wr_1 = '$wr_1'";
if ($wr_2 !== '') $set_arr[] = "wr_2 = '$wr_2'";
if ($wr_3 !== '') $set_arr[] = "wr_3 = '$wr_3'";
if ($wr_4 !== '') $set_arr[] = "wr_4 = '$wr_4'";
if (count($set_arr) > 0) {
sql_query(" UPDATE $write_table SET " . implode(', ', $set_arr) . " WHERE wr_id = '{$exist_row['wr_id']}' ");
}
$update_count++;
} else {
// 새 글 INSERT
$wr_num = get_next_num($write_table);
$wr_option = $html;
$wr_seo_title = exist_seo_title_recursive('bbs', generate_seo_title($wr_subject), $write_table, $wr_id);
답변 3개 / 댓글 6개
채택된 답변
+20 포인트
6일 전
if ($exist_row['wr_id']) {
$set_arr = array();
// wr_1, wr_3은 그대로 업데이트 (덮어쓰기)
if ($wr_1 !== '') $set_arr[] = "wr_1 = '$wr_1'";
if ($wr_3 !== '') $set_arr[] = "wr_3 = '$wr_3'";
// wr_2, wr_4는 명시적으로 숫자로 변환 후 더하기
if ($wr_2 !== '') {
// CAST(wr_2 AS SIGNED)를 통해 문자열을 숫자로 취급하여 더함
$set_arr[] = "wr_2 = CAST(IFNULL(wr_2, 0) AS SIGNED) + " . (int)$wr_2;
}
if ($wr_4 !== '') {
$set_arr[] = "wr_4 = CAST(IFNULL(wr_4, 0) AS SIGNED) + " . (int)$wr_4;
}
if (count($set_arr) > 0) {
$sql = " UPDATE $write_table SET " . implode(', ', $set_arr) . " WHERE wr_id = '{$exist_row['wr_id']}' ";
sql_query($sql);
}
$update_count++;
}
$set_arr = array();
// wr_1, wr_3은 그대로 업데이트 (덮어쓰기)
if ($wr_1 !== '') $set_arr[] = "wr_1 = '$wr_1'";
if ($wr_3 !== '') $set_arr[] = "wr_3 = '$wr_3'";
// wr_2, wr_4는 명시적으로 숫자로 변환 후 더하기
if ($wr_2 !== '') {
// CAST(wr_2 AS SIGNED)를 통해 문자열을 숫자로 취급하여 더함
$set_arr[] = "wr_2 = CAST(IFNULL(wr_2, 0) AS SIGNED) + " . (int)$wr_2;
}
if ($wr_4 !== '') {
$set_arr[] = "wr_4 = CAST(IFNULL(wr_4, 0) AS SIGNED) + " . (int)$wr_4;
}
if (count($set_arr) > 0) {
$sql = " UPDATE $write_table SET " . implode(', ', $set_arr) . " WHERE wr_id = '{$exist_row['wr_id']}' ";
sql_query($sql);
}
$update_count++;
}
답변에 대한 댓글 1개
6일 전
if ($exist_row['wr_id']) {
// 이미 존재하는 글 → 값이 있는 여분필드만 UPDATE
$set_arr = array();
// wr_1, wr_3은 그대로 업데이트 (덮어쓰기)
if ($wr_1 !== '') $set_arr[] = "wr_1 = '$wr_1'";
if ($wr_3 !== '') $set_arr[] = "wr_3 = '$wr_3'";
// wr_2, wr_4는 기존 숫자에 더하기 (+)
// IFNULL을 사용하여 기존 값이 비어있을 경우 0으로 처리합니다.
if ($wr_2 !== '') {
$set_arr[] = "wr_2 = IFNULL(wr_2, 0) + " . (int)$wr_2;
}
if ($wr_4 !== '') {
$set_arr[] = "wr_4 = IFNULL(wr_4, 0) + " . (int)$wr_4;
}
if (count($set_arr) > 0) {
$sql = " UPDATE $write_table SET " . implode(', ', $set_arr) . " WHERE wr_id = '{$exist_row['wr_id']}' ";
sql_query($sql);
}
$update_count++;
}
// 이미 존재하는 글 → 값이 있는 여분필드만 UPDATE
$set_arr = array();
// wr_1, wr_3은 그대로 업데이트 (덮어쓰기)
if ($wr_1 !== '') $set_arr[] = "wr_1 = '$wr_1'";
if ($wr_3 !== '') $set_arr[] = "wr_3 = '$wr_3'";
// wr_2, wr_4는 기존 숫자에 더하기 (+)
// IFNULL을 사용하여 기존 값이 비어있을 경우 0으로 처리합니다.
if ($wr_2 !== '') {
$set_arr[] = "wr_2 = IFNULL(wr_2, 0) + " . (int)$wr_2;
}
if ($wr_4 !== '') {
$set_arr[] = "wr_4 = IFNULL(wr_4, 0) + " . (int)$wr_4;
}
if (count($set_arr) > 0) {
$sql = " UPDATE $write_table SET " . implode(', ', $set_arr) . " WHERE wr_id = '{$exist_row['wr_id']}' ";
sql_query($sql);
}
$update_count++;
}
6일 전
if ($exist_row['wr_id']) {
// 이미 존재하는 글 → 값이 있는 여분필드만 UPDATE
$set_arr = array();
// wr_1, wr_3은 그대로 업데이트 (덮어쓰기)
if ($wr_1 !== '') $set_arr[] = "wr_1 = '$wr_1'";
if ($wr_3 !== '') $set_arr[] = "wr_3 = '$wr_3'";
// wr_2, wr_4는 기존 내용에 더하기 (CONCAT 사용)
// 구분자(예: 공백이나 줄바꿈)가 필요하다면 ' ', '\n' 등을 중간에 넣으세요.
if ($wr_2 !== '') {
$set_arr[] = "wr_2 = CONCAT(IFNULL(wr_2, ''), '$wr_2')";
}
if ($wr_4 !== '') {
$set_arr[] = "wr_4 = CONCAT(IFNULL(wr_4, ''), '$wr_4')";
}
if (count($set_arr) > 0) {
$sql = " UPDATE $write_table SET " . implode(', ', $set_arr) . " WHERE wr_id = '{$exist_row['wr_id']}' ";
sql_query($sql);
}
$update_count++;
}
// 이미 존재하는 글 → 값이 있는 여분필드만 UPDATE
$set_arr = array();
// wr_1, wr_3은 그대로 업데이트 (덮어쓰기)
if ($wr_1 !== '') $set_arr[] = "wr_1 = '$wr_1'";
if ($wr_3 !== '') $set_arr[] = "wr_3 = '$wr_3'";
// wr_2, wr_4는 기존 내용에 더하기 (CONCAT 사용)
// 구분자(예: 공백이나 줄바꿈)가 필요하다면 ' ', '\n' 등을 중간에 넣으세요.
if ($wr_2 !== '') {
$set_arr[] = "wr_2 = CONCAT(IFNULL(wr_2, ''), '$wr_2')";
}
if ($wr_4 !== '') {
$set_arr[] = "wr_4 = CONCAT(IFNULL(wr_4, ''), '$wr_4')";
}
if (count($set_arr) > 0) {
$sql = " UPDATE $write_table SET " . implode(', ', $set_arr) . " WHERE wr_id = '{$exist_row['wr_id']}' ";
sql_query($sql);
}
$update_count++;
}
답변에 대한 댓글 5개
6일 전
너무 너무 감사합니다.
wr_2, wr_4 가 문자가 아니라 수자입니다. 기존 데이터가 그대로 표시되네요. 기존내용이 숫자로 합을 구하고 싶습니다.
wr_2, wr_4 가 문자가 아니라 수자입니다. 기존 데이터가 그대로 표시되네요. 기존내용이 숫자로 합을 구하고 싶습니다.
6일 전
위에 새로쓴 댓글로 하셔도 합쳐지지 않는다는걸까요?
답변을 작성하려면 로그인이 필요합니다.