我正在尝试从MySQL表中选择容量的最小值和最大值,但每当我尝试时,我都会收到以下错误:
警告:min():当只给出一个参数时,它必须是一个数组 在第38行的/campus/campus.php中调用堆栈:0.0003 352296 1. {main}() /campus/campus.php:0 0.0124 1654304 2. min()/campus /campus.php:38 警告:max():当只给出一个参数时,它必须是一个数组 在第39行的/campus/campus.php中调用堆栈:0.0003 352296 1. {main}() /campus/campus.php:0 0.0125 1654360 2. max()/campus/campus.php:39
以下是我正在使用的代码:
$sql= "SELECT MIN(capacity), MAX(capacity) FROM room";
$res =& $db->query($sql);
if (PEAR::isError($res)) {
die($res->getMessage());
}
while($row = $res->fetchRow())
{
$minCapacity = $row[MIN(capacity)];
$maxCapacity = $row[MAX(capacity)];
}
echo $minCapacity;
echo $maxCapacity;
答案 0 :(得分:1)
也许尝试为你的MIN和MAX分配一个别名:
$sql= "SELECT MIN(capacity) AS myMIN, MAX(capacity) AS myMAX FROM room";
然后在您的代码中执行以下操作:
while($row = $res->fetchRow())
{
$minCapacity = $row['myMIN'];
$maxCapacity = $row['myMAX'];
}
只是一个想法。
答案 1 :(得分:1)
为查询创建别名:选择min(capacity)作为minVal。这样就可以从数组中提取值。
答案 2 :(得分:1)
$minCapacity = $row['MIN(capacity)'];
^-- ^--
缺少指示的引号。 min()
是一个有效的PHP函数,因此您尝试将PHP的min函数的结果用作$ row中的数组索引。
答案 3 :(得分:0)
MIN(容量)和MAX(容量)应该在while循环中引用。
你试图调用php函数max和min(如果只给出一个param则需要一个数组),而不是引用你的sql查询的结果。
答案 4 :(得分:0)
MIN和MAX被解析器解释为PHP函数。尝试将它们用引号括起来,将它们作为$ row中映射的键(假设它们在查询结果中表示为这样)。