웹 사이트 사용자가 내 웹 사이트에서 작업을 수행 한 후 몇 초 후에 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
}
당신이 그것을위한 cron 작업을 설정할 수 있습니다. –
계속하기 전에 ... 왜 정확히 몇 초를 기다리고 싶습니까? – Tularis
아니요, 몇 분마다 cron 작업을 실행해야합니다. PHP sleep을 호출 할 수 있습니다 .... –