sql문 질문드립니다.
본문
안녕하세요
환경설정의 여분필드 값을 통해 비교 후
게시판 여분필드에 해당 값을 넣으려 합니다.
cf_1_subj = A
cf_1 = 에이
cf_2_subj = B
cf_2 = 비
이런식 으로 되어있구요
게시판에 입력되는 wr_7값이 A 면 wr_3 에 "에이"를 입력하려 합니다.
// wr_7 값이 A를 포함하는 경우
if (strpos($wr_7, 'A') !== false) {
$wr_3 = '에이'; // wr_7값중 A를 포함할 때 wr_3 값을 에로 설정
} else {
$wr_3 = $data_received['wr_3'] ?? ''; // 그 외의 경우에는 원래 값을 사용
}
// 게시물 업데이트
$sql = "INSERT INTO $write_table (wr_id, wr_num, wr_subject, wr_name, wr_1, wr_2, wr_3, wr_4, wr_5, wr_6, wr_7, wr_8, wr_9, wr_10, wr_content, wr_datetime, wr_ip, wr_un)
VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
이렇게 직접적으로 소스에서 값을 넣으면 잘되는데
이걸 환경설정의 cf_1 ~ cf_10 / cf_1_subj ~ cf_10_subj 까지 적용하고 싶습니다.
// wr_7 값이 A를 포함하는 경우
if (strpos($wr_7, '$cf_1_subj') !== false) {
$wr_3 = '$cf_1'; // wr_7값중 A를 포함할 때 wr_3 값을 에이로 설정
} else {
$wr_3 = $data_received['wr_3'] ?? ''; // 그 외의 경우에는 원래 값을 사용
}
이렇게 하면될것 같은데..
g5_config 부분도 선언을 해줘야 할 것 같고.. (아직 cf_1 ~~ 값들을 못받아오고있습니다..ㅠ)
더 중요한건 10개를 전부 저렇게 넣으면 소스가 길어지고 비효율적일것 같아서요..
현재 만들어보고 있는 소스입니다.. (물론 안되고있습니다...ㅎ)
$sql = "SELECT * FROM g5_config";
$result = $db->query($sql);
for ($i = 1; $i <= 10; $i++) {
$cf_subj_field = "cf_{$i}_subj"; // cf_1_subj, cf_2_subj, ..., cf_10_subj
$cf_field = "cf_{$i}"; // cf_1, cf_2, ..., cf_10
// wr_7 값 중 해당 subj 필드가 포함되어 있는지 확인
if (in_array($cf_subj_field, $config_fields) && in_array($cf_field, $config_fields) && strpos($wr_7, $$cf_subj_field) !== false) {
$wr_3 = $$cf_field; // wr_3 값을 업데이트
break; // 필드를 찾았으면 반복문 종료
}
}
혹시 좋은 방법 알고 계신 고수님들 도움 부탁드립니다.
감사합니다.
!-->!-->!-->
답변 2
다음 코드가 도움이 될지 모르겠습니다.
<?php
$cnt = 5;
// 1. normal
$cf_1_subj = 'A';
$cf_2_subj = 'B';
$cf_3_subj = 'C';
$cf_4_subj = 'D';
$cf_5_subj = 'E';
$cf_1 = '에이';
$cf_2 = '비';
$cf_3 = '씨';
$cf_4 = '디';
$cf_5 = '이';
// 2. array
// $config = [
// 'cf_1_subj' => 'A',
// 'cf_2_subj' => 'B',
// 'cf_3_subj' => 'C',
// 'cf_4_subj' => 'D',
// 'cf_5_subj' => 'E',
// 'cf_1' => '에이',
// 'cf_2' => '비',
// 'cf_3' => '씨',
// 'cf_4' => '디',
// 'cf_5' => '이',
// ];
$data_received = ['wr_3' => 'data_received_wr_3'];
$wr_3 = '';
$wr_7 = 'A';
for ($i = 1; $i <= $cnt; $i++) {
// 1. normal
$val_cf_n_subj = ${"cf_{$i}_subj"};
$val_cf_n = ${"cf_{$i}"};
// 2. array
// $val_cf_n_subj = $config['cf_' . $i . '_subj'];
// $val_cf_n = $config['cf_' . $i];
if (strpos($wr_7, $val_cf_n_subj) !== false) {
$wr_3 = $val_cf_n;
break;
}
}
if (empty($wr_3) == true) {
$wr_3 = $data_received['wr_3'];
}
?>
if (strpos($wr_7, '$cf_1_subj') !== false) {
$wr_3 = '$cf_1';
→
if (strpos($wr_7, $config['cf_1_subj']) !== false) {
$wr_3 = $config['cf_1'];
답변을 작성하시기 전에 로그인 해주세요.