zcompany.edit.php에서 보내준 form의 submit 에 의해 $_POST["name명"]; 으로 받아주는데
여기서 선행되어야할 점은
1. update를 위한 $cid가 hidden을 통해 들어왔는지 echo로 확인
2. insert를 위한 $mode가 hidden을 통해 들어왔는지 echo로 확인
잘 들어온걸 확인하고나서 고려해야할 점은
mode를 기준점으로
if (mode가 new면 insert 쿼리문) else면 (update 쿼리문) 으로 구분한다.
if ($mode == "new"){
$sql = "insert into zcompany
( cname, cnumber, ceo, address, tel
, hp, smoney, tmoney, dtstart)
values
( '$cname', '$cnumber', '$ceo', '$address', '$tel'
, '$hp', $smoney, $tmoney, '$dtstart')";
}else{
$sql = "update zcompany set
cname='$cname'
, cnumber='$cnumber'
, ceo='$ceo'
, address='$address'
, tel='$tel'
, hp='$hp'
, smoney=$smoney
, tmoney=$tmoney
, dtstart='$dtstart'
where id=$cid
";
}
또는
if ((int)$cid==0){
// 자료읽기
$sql = "INSERT INTO zcompany (
cname, cnumber, ceo, address, tel
, hp, smoney, dtstart, email
) VALUES (
'$cname', '$cnumber', '$ceo', '$address', '$tel'
, '$hp', $smoney, '$dtstart', '$email'
)";
}else{
$sql = "UPDATE zcompany SET
cname = '$cname'
, cnumber = '$cnumber'
, ceo = '$ceo'
, address = '$address'
, tel = '$tel'
, hp = '$hp'
, smoney = $smoney
, dtstart = '$dtstart'
, email = '$email'
WHERE id=$cid
";
}
sql_query($sql);
$mode != "new" 와 (int)$cid==0 는 같은 의미. mode가 기준이면 앞의 것을, cid가 기준이면 뒤의 것을 쓰면 됨.
● 형 변환 처리
우리는 사용자가 input란에 어떤걸 넣던지 간에 DB로 잘 저장되게끔 프로그램을 짜놔야한다.
그렇게 짜놓는 방법 중 하나가 형 변환 처리.
나 같은 경우 $smoney, $tmoney의 dataType이 숫자형이었기 때문에 사용자가 문자형으로 input란을 기재했을경우 DB에 저장되지 않는 문제가 발생함. 결국 (int)로 형변환 해주면서 해결.
(int) 형변환을 했을 경우. 들어오는값이 null이든, empty든, 문자형이든 숫자가 0으로 치환되버림.
$smoney = (double)trim($_POST["smoney"]);
$smoney = (double)trim($_POST["smoney"]);
전체 코드는
<?php
include_once('./_common.php');
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
$href_list = G5_URL."/work/zcompany.list.php";
$cid = $_POST["cid"];
$mode = $_POST["mode"];
if ($mode!="new") if((int)$cid==0) alert("잘못된 접근입니다.", $href_list);
// 자료읽기
$cname = trim($_POST["cname"]);
$cnumber = trim($_POST["cnumber"]);
$ceo = trim($_POST["ceo"]);
$address = trim($_POST["address"]);
$tel = trim($_POST["tel"]);
$hp = trim($_POST["hp"]);
$smoney = (double)trim($_POST["smoney"]);
$dtstart = trim($_POST["dtstart"]);
$email = trim($_POST["email"]);
if ((int)$cid==0){
// 자료읽기
$sql = "INSERT INTO zcompany (
cname, cnumber, ceo, address, tel
, hp, smoney, dtstart, email
) VALUES (
'$cname', '$cnumber', '$ceo', '$address', '$tel'
, '$hp', $smoney, '$dtstart', '$email'
)";
}else{
$sql = "UPDATE zcompany SET
cname = '$cname'
, cnumber = '$cnumber'
, ceo = '$ceo'
, address = '$address'
, tel = '$tel'
, hp = '$hp'
, smoney = $smoney
, dtstart = '$dtstart'
, email = '$email'
WHERE id=$cid
";
}
sql_query($sql);
alert("저장되었습니다.", $href_list);
?>
'PHP' 카테고리의 다른 글
[PHP] 정규표현식을 이용한 사업자 번호, 이메일 검증 (PHP버전) (0) | 2023.03.10 |
---|---|
[PHP] update.php (INSERT, UPDATE 처리)에서 사용했던 PHP 함수 (0) | 2023.03.09 |
[PHP]edit.php에서 코드짤 때 주의할 점 [INSERT, UPDATE 화면] (0) | 2023.03.03 |
[PHP]게시판 내 이동시 잘못된 주소로 들어오는 접속자들 걸러주기 (0) | 2023.03.03 |
[PHP]DB 결과값이 단수로 나올 때, 복수로 나올 때 쿼리 뽑기 함수 (0) | 2023.02.28 |