채택완료

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

2024-05-21 (화) 08:48:48 8,091
Copy
<?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개 / 댓글 2개

채택된 답변
+20 포인트
2024-05-21 (화) 08:55:18
Copy
$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) {
    // 저장 코드
}

혹은

Copy
$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;   
}

답변에 대한 댓글 2개

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

[code]
?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);
}
}
[/code]
2024-05-22 (수) 15:02:42
감사합니다.
2024-05-21 (화) 11:53:06

최초에 한번 저장하고 이후에 저장여부를 체크할수있는 플래그로 

saveYN과 저장날짜로 체크를 하시어 

없을때만 insert하시면 됩니다. 

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

해당 날짜 기준으로 

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

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

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

답변을 작성하려면 로그인이 필요합니다.