警告:仅给出一个参数时,它必须是一个数组

时间:2012-03-22 14:38:43

标签: php mysql

我正在尝试从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;

5 个答案:

答案 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中映射的键(假设它们在查询结果中表示为这样)。