사이트에서 DB받을때 중복 거르는 코딩질문

사이트에서 DB받을때 중복 거르는 코딩질문

QA

사이트에서 DB받을때 중복 거르는 코딩질문

본문

코딩초보가 구글 찾으면서 하다가 제대로 찾질못해서 그런지 자료가 안나와서 질문드립니다.

 

랜딩페이지를 만들어서 고객정보를 수집하는데 수집항목이 이름,전화번호 입니다.

 

고객이 이름,전화번호를 입력하면 날짜 및 시간은 자동으로 DB에 입력되고 있습니다.

 

이 상태에서 전화번호로 중복접수를 거르고 있는데 한번 신청한 전화번호로 또 신청시 DB내역과 대조해서 신청 못하게는 만들었는데 생각해보니 30일 뒤에 신청을해도 안된다는걸 깨닫고 처음신청한 날짜 기준으로 30일 뒤에 재 신청시에는 신청가능하게 만들고 싶은데 검색을 해도 제가 원하는 자료가 안나오네요...

 

처음 신청 후 30일 후 신청시 신청되게 하는 코딩은 어떻게 만들어야 하나요?

현재 제가 작성한 중복체크해서 거르는 코딩 올려드려요
 

<?PHP
// DB 중복검사
$sql = "SELECT count(*) cnt FROM g5_write_online_3 WHERE wr_1 = '{$wr_1}'";
$row = sql_fetch($sql);
if($row['cnt'] > 0) {
  alert("이미 존재하는 연락처가 있습니다.");
  exit;
}
?>

이 질문에 댓글 쓰기 :

답변 2

이렇게요. 30일 이내 있는가를 비교하는 쿼리


$sql = "SELECT count(*) cnt FROM g5_write_online_3 WHERE wr_1 = '{$wr_1}'";
===>
$sql = "SELECT count(*) cnt FROM g5_write_online_3 WHERE wr_datetime > DATE_SUB(NOW(), INTERVAL 30 DAY) >  wr_1 = '{$wr_1}'";

<?PHP
$sql = "SELECT count(*) cnt FROM g5_write_online_3 WHERE wr_datetime > DATE_SUB(NOW(), INTERVAL 30 DAY) >  wr_1 = '{$wr_1}'";
$row = sql_fetch($sql);
if($row['cnt'] > 0) {
  alert("이미 존재하는 연락처가 있습니다.");
  exit;
}
?>

알려주신대로 했는데 저렇게 작성하니 기존에 되던 중복체크도 안되네요...

오타가 있었네요... 흠냐...  AND wr_1 = '{$wr_1}'";
AND를 넣었어야 하는데... ">"이 들어가 있었네요...


$sql = "SELECT count(*) cnt FROM g5_write_online_3 WHERE wr_datetime > DATE_SUB(NOW(), INTERVAL 30 DAY) AND wr_1 = '{$wr_1}'"; 

감사합니다~ 해결됬어요 ㅠㅠ 데이터베이스에 대해서 배우려면 어떤책을 보는게 도움이 될까요. 혼자서 사이트를 만드려니 모르는게 엄청 나오네요 욕심만 많아가지고 좋게 만들고는 싶고 실력은 쥐뿔도 없고 ...

g5_write_online_3 에 날짜 컬럼이 있다면 해당 쿼리에 날짜 계산을 넣으시고

insert 하는 쿼리에 ON DUPLICATE KEY UPDATE 를 추가하시면 되지 않을까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 156
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT