根据ID

时间:2017-10-12 10:42:41

标签: php sql

希望有人能够阐明这一点。我试图从一行中的两个字段中提取值,并根据过期的行,从下拉列表中排除这两个值。

我有一张桌子(时间表) 游戏ID homeID visitorID gameTimeEastern WEEKNUM

每周有2支球队相互比赛的比赛。这两支球队基于具有特定开始时间的gameID(gameTimeEastern)连续排列。

我有一个确定比赛何时被锁定的功能,这意味着比赛已经开始:

function gameIsLocked($gameID) {
//find out if a game is locked
global $mysqli, $cutoffDateTime;
$sql = "select (DATE_ADD(NOW(), INTERVAL " . SERVER_TIMEZONE_OFFSET . " HOUR) > gameTimeEastern or DATE_ADD(NOW(), INTERVAL " . SERVER_TIMEZONE_OFFSET . " HOUR) > '" . $cutoffDateTime . "')  as expired from " . DB_PREFIX . "schedule where gameID = " . $gameID;
$query = $mysqli->query($sql);
if ($query->num_rows > 0) {
    $row = $query->fetch_assoc();
    return $row['expired'];
}
$query->free;
die('Error getting game locked status: ' . $mysqli->error);

这基本上决定了行是否已过期(gameTimeEastern已通过)。然后我在一个表格上有一个下拉列表,其中列出了该周每场比赛的所有球队。如果该行已过期,那么我不想在下拉列表中包含该行的homeID或visitorID。

在我的页面上,我试图从过期的行中显示这些团队,但是当页面停止处理时它会失败:

        //get expired teams
    $expiredGames =gameIsLocked(gameID);
//      echo 'Expired games are GAME ' . $expiredGames . '<br>';    
    for ($eti=1; $eti<=$gameID; $eti++)
    {
     if ($gameID[$eti]>''){
    $sql = "select * from " . DB_PREFIX . "schedule WHERE gameID = '" . $gameID[$eti] . "';";       
    $query = $mysqli->query($sql);
    if ($query->num_rows > 0) {
        $result = $query->fetch_assoc();
        $expiredHomeTeam = $result['homeID'];
        $expiredVisitorTeam = $result['visitorID'];
    }           

            }
echo 'Expired teams for GAME '.$gameID.' are '.$expiredHomeTeam.' and '.$expiredVisitorTeam.'<br>'; 

}

新代码 - 实际上给了我第一个结果

            //get expired teams
    $expiredGames =gameIsLocked(gameID);

    $sql = "select * from " . DB_PREFIX . "schedule WHERE weekNum = '6';";      
    $query = $mysqli->query($sql);
    if ($query->num_rows > 0) {
        $result = $query->fetch_assoc();
        $expiredHomeTeam = $result['homeID'];
        $expiredVisitorTeam = $result['visitorID'];
    }           
        echo 'Expired teams for GAME ' . $expiredGames . ' are '.$expiredHomeTeam.' and '.$expiredVisitorTeam.'<br>';

1 个答案:

答案 0 :(得分:0)

结束使用SQL查询来安排获得我需要的结果。谢谢你的指导。逻辑已经存在,只需要在下拉列表中为团队填充数组添加if语句。