2012-03-22 213 views
0

我想請從MySQL表容量的最大值和最小值,但每當我嘗試,我得到以下錯誤:警告:當只有一個指定參數,它必須是一個數組

Warning: min(): When only one parameter is given, it must be an array in /campus/campus.php on line 38 Call Stack: 0.0003 352296 1. {main}() /campus/campus.php:0 0.0124 1654304 2. min() /campus/campus.php:38 Warning: max(): When only one parameter is given, it must be an array in /campus/campus.php on line 39 Call Stack: 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; 

回答

1
$minCapacity = $row['MIN(capacity)']; 
         ^--   ^-- 

指示的引號丟失。 min()是一個有效的PHP函數,因此您試圖將PHP的min函數的結果用作$ row中的數組索引。

+0

沒有什麼從表中返回和變量$ minCapacity和$ MAXCAPACITY爲0 – CJS 2012-03-22 14:56:48

+0

然後做了'的var_dump ($ row)'看看你從fetch調用中得到了什麼 – 2012-03-22 14:59:07

+0

在代碼中我應該放置var_dump($ row)? – CJS 2012-03-22 15:01:03

0

MIN(容量)和MAX(容量)應該在您的while循環中加引號。

您正在嘗試調用php函數max和min(如果只給出一個參數,則需要一個數組),而不是引用sql查詢的結果。

+0

:(接聽首先獲得無分! – Arth 2012-03-22 15:39:23

0

MIN和MAX被解析器解釋爲PHP函數。嘗試將它們用引號括起來,將它們作爲$ row中的映射關鍵字(假設它們在查詢結果中表示爲這樣)。

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']; 
    } 

只是一個想法。

+0

的$ minCapacity和$ MAXCAPACITY似乎都爲0。 – CJS 2012-03-22 14:51:03

1

爲您的查詢創建別名:選擇min(capacity)作爲minVal。這使得從數組中提取值成爲可能。

相關問題