db 저장시 하루에 한번만 가능하게

db 저장시 하루에 한번만 가능하게

QA

db 저장시 하루에 한번만 가능하게

본문


<?php
$conn = mysqli_connect("localhost", "****", "****!", "****");

$zzzz = $_GET['cccc']; 
$time = date("Y-m-d H:i:s"); // 현재시간 저장
 
$sql  = "insert into very_work_time (work_id, work_name,work_group,work_intime,work_outtime,work_datetime,work_ip,work_total) 
         select id, work_name,work_group, '$time', '','$time','{$_SERVER['REMOTE_ADDR']}', '$zzzz'
         from very_work_list 
         where work_hp = '$zzzz'";
      
$result = mysqli_query($conn, $sql);
if($result === false){
    echo mysqli_error($conn);
}
$result = mysqli_query($conn,"SELECT work_name FROM very_work_list where work_hp='$zzzz' ");
 
$row = mysqli_fetch_array($result);
$data = $row[0];
 
if($data){
echo $data;
}

?>

 

위 코드는 안드로이드 에서 GET 방식으로 핸드폰 번호를 전송받아서

very_work_list 테이블에 저장된 리스트중에 핸드폰번호와 매칭된 정보들을 불러와서

very_work_time 테이블에 데이터를 저장하는 코드입니다...

 

작동은 정상적으로 잘 되고 있습니다.

현재는 동일 핸드폰 번호일 경우에도 PHP 파일로 핸드폰번호가 전송될때마다

신규로 계속 저장이 되는데요

제가 원하는 것은 핸드폰 번호별로 하루에 한번만 저장되게 하려고 하는데요

먼가 잘 안되서 문의드립니다...

 

어떻게 하면 될까요?

 

이 질문에 댓글 쓰기 :

답변 3


$today = date("Y-m-d");
$check_sql = "SELECT COUNT(*) FROM very_work_time WHERE work_hp = '$zzzz' AND DATE(work_datetime) = '$today'";
$check_result = mysqli_query($conn, $check_sql);
$check_row = mysqli_fetch_row($check_result);
if ($check_row[0] == 0) {
    // 저장 코드
} 

 

혹은

 


$today = date("Y-m-d");
$check_sql = "SELECT COUNT(*) FROM very_work_time WHERE work_hp = '$zzzz' AND DATE(work_datetime) = '$today'";
$check_result = mysqli_query($conn, $check_sql);
$check_row = mysqli_fetch_row($check_result);
if ($check_row[0] > 0) {
 return;   
}

인서트 코드문이 빠져있네요


?php
$zzzz = $_GET['cccc'];
$time = date("Y-m-d H:i:s"); // 현재시간 저장
$today = date("Y-m-d");

// 데이터베이스 연결
$conn = mysqli_connect('your_host', 'your_username', 'your_password', 'your_database');
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// 중복 체크 쿼리 실행
$check_sql = "SELECT COUNT(*) FROM very_work_time WHERE work_total = '$zzzz' AND DATE(work_datetime) = '$today'";
$check_result = mysqli_query($conn, $check_sql);
$check_row = mysqli_fetch_row($check_result);

if ($check_row[0] == 0) {
    // 중복이 없는 경우 INSERT 쿼리 실행
    $sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total)
                   SELECT id, work_name, work_group, '$time', '', '$time', '{$_SERVER['REMOTE_ADDR']}', '$zzzz'
                   FROM very_work_list
                   WHERE work_hp = '$zzzz'";
    
    if (mysqli_query($conn, $sql)) {
        echo "성공 메세지 혹은 어디로 이동하시던지 맘대로 설정^^;";
    } else {
        echo "에러: " . $sql . "<br>" . mysqli_error($conn);
    }
}

$time 이라고 오늘 날짜 저장을 하고 있으니까

해당 날짜 기준으로 

 

select 기준으로 where left(work_datetime,10)='2024-01-01' and work_hp = '{$zzzz}' 값이 존재하는지 여부를 보고

 

등록을 하도록 insert 처리해 주시면 되십니다.

 

그럼 하루에 한번만 등록이 될겁니다.

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

회원로그인

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