2017-09-13 1 views
0

좋아, 그래서 데이터베이스에서 "해피 아워"를 업데이트 할 수 있도록 함수를 만드는 방법을 살펴 보려고합니다.시간 사이의 특정 요일에 mysql 행 업데이트

이유는 사용자가이 시간 동안 여분의 물건을 얻는 이유입니다.

예를 들어, 금요일과 토요일은 18:00에서 21:00 사이이며, 요일이나 시간대는 요일 또는 시간대가되어야합니다. 요일과 시간은 내가 필요한 것을 나타내는 예일뿐입니다. 는 날짜와 시간을 가져온 다음에 액세스 할 수있는 MySQL의에 저장된 시간을 가질 필요가 PHP는 시간 함수 또는 경우에 할 수 있으면

function happy_hour(){ 
global $conn; 
$getDay = time("l"); 
$getHour = time("H:i"); 
if ($getDay == "Wednesday" && $getHour > "12:00") { 
    mysqli_query($conn, "UPDATE Game SET happy_hour = 'yes' WHERE id='1' LIMIT 1"); 
} 
} 

happy_hour(); 

모르겠습니다 경우 시간 사이 이일의에 on에서 off로 설정하십시오.

고맙습니다.

+0

... https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html 그들과 이벤트 서버를 지원하는 경우 스케줄러가 활성화되었습니다 .. –

+1

왜 이것을 데이터베이스에 저장해야합니까? 게임 페이지에서 데이트 체크 만 하시겠습니까? – Vindur

+0

내가 사용하고자하는 것은 XP 시스템과 같으며 다른 페이지의 여러 활동에 대해 하루 동안 특정 시간에 완료하면 추가 xp를 얻을 수 있습니다. 가장 좋은 방법은 무엇인지 확실하지 않습니다. – BoxyGILLETT

답변

0

UR 서버와 데이터베이스 서버의 시간이 같으면 u가 모두 작동합니다. u가 아니라면 시간을 설정해야하며 bettwen 일 설정을 위해 preg_match like를 사용할 수 있습니다.

$ day = time ("l");

$ 시간 = 시간 ("안녕");

(는 preg_match ($ 일, '/ 금요일 | 토요일 /') & & $ 시간> = 1800 & & $ 시간 = 2100 <) 경우 { 여기에 물건을 할 }

+0

호스트 서버를 설정할 때 유럽 서버 시간을 선택했을 때 클라이언트 측보다 1 시간 늦었습니다. 시도해 본 결과 오늘과 그 시간 사이에 시간이 변경 되어도 작동하지 않았습니다. – BoxyGILLETT

0
$day = gmdate('l'); 
$hour = gmdate('H:i'); 

if ($day == "Wednesday") { 

if ($hour >= "14:26" && $hour <= "18:27") { 
$isextra = true; 
}else{ 
$isextra = false; 
} 
} 

배 그냥 예제지만 작동, xp가 true 또는 false를 확인하는 활동에 대한 경우.

if(isset($_POST['getXP'])) { 
if($isextra == "true") { 
$xpgained = 50; 
}else{ 
$xpgained = 20; 
} 

mysqli_query($conn, "UPDATE Account_Character SET rank_xp=rank_xp + '$xpgained' WHERE username='$username' LIMIT 1"); 
} 

이것은 내가 만든 샘플이며, 실제 적용되기 전에 작동하고 싶었습니다.

고마워 :) 당신은 MySQL의 이벤트를 사용할 수