엑셀 업로드 관련 질문
본문
엑셀로 업로드 하는데 원하는것은 서울 강남구|대전 동구|부산 강남구
이런 식으로 구분자로 해서 한 컬럼에 저장을 할려고 합니다.
현재는.. update 문 이라 당연히 맨 마지막만 저장되더라구요..
for ($i = 0; $i <= $data->sheets[0]['numRows']; $i++) {
$cf_addr = addslashes($data->sheets[0]['cells'][$i][1]);
$sql = " update {$g5['config_table']} set test = '{$cf_addr}' ";
sql_query($sql);
}
답변 3
for문에서 addr 배열을 만들고
for문 밖에서 한번만 update 해야될 것 같습니다.
그런데 몇 줄이든 상관이 없나요?
$arr = array();
for ($i = 0; $i <= $data->sheets[0]['numRows']; $i++) {
$cf_addr = addslashes($data->sheets[0]['cells'][$i][1]);
if (!$cf_addr) continue;
$arr[] = $cf_addr;
}
$sql = " update {$g5['config_table']} set test = '".implode("|", $arr)."' ";
sql_query($sql);
아 한가지만 더 질문 할께요~ 혹시 중복된 값이 있으면 하나만 업로드 처리 되게끔은 어떻게 하는건지요~?
네, 이렇게
$arr = array();
for ($i = 0; $i <= $data->sheets[0]['numRows']; $i++) {
$cf_addr = addslashes($data->sheets[0]['cells'][$i][1]);
$cf_addr = trim($cf_addr); // 중복제거를 위해 공백 지우기
if (!$cf_addr) continue;
$arr[] = $cf_addr;
}
// 중복 제거, 빈값 제거
$arr = array_values(array_filter(array_unique($arr)));
$sql = " update {$g5['config_table']} set test = '".implode("|", $arr)."' ";
sql_query($sql);
답변을 작성하시기 전에 로그인 해주세요.