希望有人能够阐明这一点。我试图从一行中的两个字段中提取值,并根据过期的行,从下拉列表中排除这两个值。
我有一张桌子(时间表) 游戏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>';
答案 0 :(得分:0)
结束使用SQL查询来安排获得我需要的结果。谢谢你的指导。逻辑已经存在,只需要在下拉列表中为团队填充数组添加if语句。