2014-02-17 2 views
0

웹 사이트 사용자가 내 웹 사이트에서 작업을 수행 한 후 몇 초 후에 mysql 쿼리를 작성하려고합니다. 나는 PHP 수면으로 할 수 있다고 생각하지만, 최선의 방법인지는 모르겠다. 그렇게하기위한 옵션은 무엇입니까? 답변 해 주셔서 감사합니다.mysql에서 행을 검사하기 전에 x 초 기다림

편집 :

아이디어는 : 나는 그들이이 수를 로비 연결되어 있는지 설정, 로비, 그들이 MySQL의 쿼리가 SQL 행에 대한 정보를 업데이트 수행에 가입하면 웹 사이트에 등록 된 사용자 (가입하실 수 있습니다 x 및 슬롯 x에 있지만 서버에 조인되지 않음). 그들이 로비에 가입하면 카운터 스트라이크 소스 서버 (서버에 조인 된 사용자 행 설정 업데이트)에 x 시간 (5 분으로 가정)을 부여하려고합니다. 하지만, 나는 로비에서 그들을 쫓아 내고 싶다. (mysql 데이터베이스에서 행을 다시 업데이트하는 것이다.) 5 분 안에 서버에 가입하지 않았다면. 나는 5 분을 기다리는 부분을 제외하고이 모든 것을 코드화하고 그들이 연결되어 있는지 확인한다.

코드는 다음과 같습니다

$PlayerSlot=mysql_real_escape_string($_POST['playern']); 
$sID = mysql_real_escape_string($_POST['jsID']); 

//Check if actual player is already in another lobby 
$query = sprintf("SELECT `playern` FROM `WebsiteUsers` WHERE `userID`='%s'", mysql_real_escape_string($_SESSION['userID'])); 
$result = mysql_query($query, $con) or die("Error checking user state: ".mysql_error()); 
$row = mysql_fetch_row($result); 
$playerPlaying = $row[0]; 

//Check if the slot is free 
$query = "SELECT `".$PlayerSlot."` FROM `ServerPlayers`"; 
$result = mysql_query($query, $con); 
$PlayerSlotFree = mysql_fetch_row($result); 
if($playerPlaying == NULL && $PlayerSlotFree[0] == NULL) { 

    $query = "UPDATE `WebsiteUsers` SET `playern`='".$PlayerSlot."', `servern`='".$sID."' WHERE `userID`='".$_SESSION['userID']."'"; 
    $result = mysql_query($query, $con) or die(mysql_error()); 
    $query = "UPDATE `ServerPlayers`SET `".$PlayerSlot."`='".$_SESSION['userID']."', WHERE `serverID`='".$sID."'"; 
    $result = mysql_query($query, $con) or die(mysql_error()); 

    //Update Current Players 
    $query = "UPDATE `Servers` SET `serverPlayers`=serverPlayers + 1 WHERE `serverID`='".$sID."'"; 
    $result = mysql_query($query, $con) or die(mysql_error()); 

//TO-DO Here Wait 5 minutes and perform another query 
} 
+1

당신이 그것을위한 cron 작업을 설정할 수 있습니다. –

+3

계속하기 전에 ... 왜 정확히 몇 초를 기다리고 싶습니까? – Tularis

+0

아니요, 몇 분마다 cron 작업을 실행해야합니다. PHP sleep을 호출 할 수 있습니다 .... –

답변

1

사용 setTimeout() 자바 스크립트

// Wait for 3 Seconds then execute 
setTimeout(function(){ 
    // your action 
}, 3000); 

// In Every 3 Second Execute 
setInterval(function(){ 
    // your action 
}, 3000); 
+0

작은 아약스가 포함 된 경우 +1 예 –

+0

@RonniSkansing 이제는 별개의 질문이 될 것입니다. –

+0

javascript에서 setTimeout 함수를 알고 있지만 해당 함수로 mysql 쿼리를 수행하는 방법이 안전한지 또는 알 수 없는지 잘 모릅니다. 대답을 주셔서 감사합니다 – nnRg

관련 문제