【发布时间】:2016-04-17 23:02:08
【问题描述】:
我在第 15 行收到一条错误消息,显示“未定义变量:row2”。我该如何解决这个问题?
$limit = 20;
$res1 = mysql_query('SELECT *
FROM contact
WHERE name = "Greg"');
$res2 = mysql_query('SELECT name
FROM contact c, passport p
ON c.idNum = p.iNum
WHERE date >= "2015-03-03" AND t< "2015-03-21');
if(!$res1 && !$res2) {
die('Query no valid: ' . mysql_error());
}
else {
while(($row1 = mysql_fetch_array($res1)) || ($row2 = mysql_fetch_array($res2))) {
$sub = $row1['num'] - $row2['num'];
if($sub <= $limit) {
echo '<br>row name is: ', $row2['name'];
}
}
}
我想要做的是从第一个表中获取一个数字(它只会导致 Greg 的行)。然后用第二个表的结果中的数字减去它。将结果放入子变量中,并检查它是否
【问题讨论】:
-
您减去了
$row2['num'],但只在第二个查询中选择了name -
所以没有
$row2['num'],因为您没有选择该列 -
嗯..您没有在第二个查询中选择
num列,所以它显示为未定义。! -
惰性求值意味着在获取所有 $res1 结果之前,$row2 将不存在
-
这可以使用 MySQL 中的
JOIN语句来完成,使用c.idNum