我收到以下错误消息:
注意:未定义的索引:第42行的timein in time.php注意:未定义的索引:第45行的time.php超时
这是我的代码:
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$querytimeout = mysql_query("
SELECT timein
FROM studentInfo
WHERE name = '$name'
ORDER BY time DESC
LIMIT 1,1
")
or die("Error querying database ".mysql_error());
$querytimein = mysql_query("
SELECT timeout
FROM studentInfo
WHERE name = '$name'
ORDER BY time DESC
LIMIT 1
")
or die("Error querying database ".mysql_error());
while($minutestimein = mysql_fetch_array($querytimein)){
$ltimein = $minutestimein['timein'];
}
while($minutestimeout = mysql_fetch_array($querytimeout)){
$ltimeout = $minutestimeout['timeout'];
}
$timegone = $ltimein - $ltimeout;
echo $timegone;
}
问题是mysql_fetch_array()
没有使timein
或timeout
成为数组$minutestimein
的元素。
答案 0 :(得分:0)
如果您将查询与他们正在查找的字段进行比较,那么这些字段就不匹配。
在第一个查询中,您只选择timeout
,但尝试引用$minutestimein['timein']
。您在第二个查询中执行相反的操作。
答案 1 :(得分:0)
您的两个查询是多余的 - 它们从SAME记录中获取两个不同的字段。为什么不运行一个查询?
SELECT timein, timeout
FROM studentInfo
WHERE name = '$name'
ORDER BY time DESC
LIMIT 1
然后
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$diff = $row['timeout'] - $row['timeout'];
另外,使用while()
循环获取结果时,确实存在 NO 点。您已经将查询限制为仅返回一行,从而使整个循环基础结构变得无用。