在检查mysql中的行之前等待x秒

时间:2014-02-17 11:45:40

标签: php html mysql web

我想在网站用户在我的网站上执行操作几秒后进行mysql查询。我想我可以用PHP睡眠做,但我不知道这是否是最好的方法。这样做有哪些选择? 谢谢你的回答。

编辑:

我的想法是:我有一个大厅,网站注册用户可以加入(当他们加入一个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 个答案:

答案 0 :(得分:1)

在javascript中使用setTimeout()

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

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