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

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

QA

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

답변 2

본문

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

 

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

 

고객이 이름,전화번호를 입력하면 날짜 및 시간은 자동으로 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 를 추가하시면 되지 않을까요?

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 26
© SIRSOFT
현재 페이지 제일 처음으로