insert update 순차 적용 방법이 궁금합니다. 채택완료
미나님이 도움 주셔서
insert, update 두개의 파일을 하나로 합칠수 있게 되었습니다.
현재는
5555.php?cccc=63B17372&action=in 전송시 in
5555.php?cccc=63B17372&action=out 전송시 out
정상적으로 DB에 저장이 됩니다.
변경하고자 하는 부분은요
5555.php?cccc=63B17370 전송시 in
5555.php?cccc=63B17376 전송시 in
5555.php?cccc=63B17377 전송시 in
5555.php?cccc=63B17378 전송시 in
5555.php?cccc=63B17379 전송시 in
5555.php?cccc=63B17372 전송시 in
5555.php?cccc=63B17372 전송시 out
5555.php?cccc=63A17373 전송시 in
5555.php?cccc=63B17372 전송시 in
5555.php?cccc=63B17374 전송시 in
5555.php?cccc=63A17373 전송시 out
5555.php?cccc=63A17373 전송시 in
5555.php?cccc=63B17374 전송시 out
5555.php?cccc=63B17372 전송시 out
위와 같이 순차적으로 전송될때 동일한 값이 전송이 될경우
in, out이 번갈아 가면서 작동되게 하고 싶습니다.
어떻게 해야 하나요?
</p>
<p> </p>
<p><?php
$conn = mysqli_connect("localhost", "sun76841", "ZXASqw121!", "sun76841");
$zzzz = $_GET['cccc'];
$action = isset($_GET['action']) ? $_GET['action'] : 'in';
$time = date("Y-m-d H:i:s"); // 현재시간 저장
$today = date("Y-m-d");
if ($action !== 'in' && $action !== 'out') {
echo "잘못된 action 값입니다.";
exit;
}</p>
<p>
if ($action === 'in') {
// 출근 처리 (중복 체크 후 insert)
$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) {
$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 "에러: " . $sql . "
" . mysqli_error($conn);
exit;
}
}
} else {
// 퇴근 처리 (update)
$sql = "UPDATE very_work_time
SET work_outtime = '$time'
WHERE id IN (
SELECT a.id FROM (
SELECT id FROM very_work_time WHERE work_total = '$zzzz' ORDER BY work_datetime DESC LIMIT 1
) a
)";
if (!mysqli_query($conn, $sql)) {
echo "에러: " . $sql . "
" . mysqli_error($conn);
exit;
}
}
if($action === 'in'){
echo '<img src="<a href="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"" target="_blank" rel="noopener noreferrer">https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"</a> alt="Google Logo">';
}else{
echo '<img src="<a href="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"" target="_blank" rel="noopener noreferrer">https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"</a> alt="Google Logo">';
}
?></p>
<p> </p>
<p>
답변 2개
안녕하세요...
@은빛여전사 님
본문에 아이디/비밀번호 노출되어있으니, 꼭 변경하시길 바라며,
아래 코드 참조 하시길 바랍니다.
출근 이력이 있다면 퇴근 / 퇴근 이후 다시 찍었다면 출근 형태입니다.
코드가 바뀌었으며 액션이 삭제 되었습니다.
덧. 미나 아니고 미니 입니다 하하^^;
</span></p>
<p><?php</p>
<p>$conn = mysqli_connect("localhost", "sun76841", "ZXASqw121!", "sun76841");</p>
<p> </p>
<p>function executeQuery($conn, $sql) {</p>
<p> if (!mysqli_query($conn, $sql)) {</p>
<p> echo "에러: " . $sql . "
" . mysqli_error($conn);</p>
<p> exit;</p>
<p> }</p>
<p>}</p>
<p> </p>
<p>function insertWorkTime($conn, $zzzz, $time, $ip) {</p>
<p> $insert_sql = "INSERT INTO very_work_time (work_id, work_name, work_group, work_intime, work_outtime, work_datetime, work_ip, work_total)</p>
<p> SELECT id, work_name, work_group, '$time', '', '$time', '$ip', '$zzzz'</p>
<p> FROM very_work_list</p>
<p> WHERE work_hp = '$zzzz'";</p>
<p> executeQuery($conn, $insert_sql);</p>
<p>}</p>
<p> </p>
<p>function updateWorkOutTime($conn, $id, $time) {</p>
<p> $update_sql = "UPDATE very_work_time SET work_outtime = '$time' WHERE id = '$id'";</p>
<p> executeQuery($conn, $update_sql);</p>
<p>}</p>
<p> </p>
<p>$zzzz = $_GET['cccc'];</p>
<p>$time = date("Y-m-d H:i:s");</p>
<p>$today = date("Y-m-d");</p>
<p>$ip = $_SERVER['REMOTE_ADDR'];</p>
<p> </p>
<p>$check_sql = "SELECT id, work_intime, work_outtime FROM very_work_time WHERE work_total = '$zzzz' AND DATE(work_datetime) = '$today' ORDER BY work_datetime DESC LIMIT 1";</p>
<p>$check_result = mysqli_query($conn, $check_sql);</p>
<p> </p>
<p>if ($check_result && mysqli_num_rows($check_result) > 0) {</p>
<p> $row = mysqli_fetch_assoc($check_result);</p>
<p> if (empty($row['work_outtime'])) {</p>
<p> updateWorkOutTime($conn, $row['id'], $time);</p>
<p> echo '<img src="<a href="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"" target="_blank" rel="noopener noreferrer">https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"</a> alt="퇴근 처리 완료">';</p>
<p> } else {</p>
<p> insertWorkTime($conn, $zzzz, $time, $ip);</p>
<p> echo '<img src="<a href="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"" target="_blank" rel="noopener noreferrer">https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"</a> alt="재출근 처리 완료">';</p>
<p> }</p>
<p>} else {</p>
<p> insertWorkTime($conn, $zzzz, $time, $ip);</p>
<p> echo '<img src="<a href="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"" target="_blank" rel="noopener noreferrer">https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"</a> alt="출근 처리 완료">';</p>
<p>}</p>
<p>?></p>
<p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인