2013-02-08 53 views
0
 $avg_pgt = mysql_query("SELECT avg(convert(custom_var_v1,unsigned)),min(convert(custom_var_v1,unsigned)), max(convert(custom_var_v1,unsigned) FROM `table_name` WHERE server_time BETWEEN '$date 00:00:00' AND '$date 23:59:59'"); 

     $row_all = mysql_fetch_array($avg_pgt);   
     $string_avg = (string)$row_all[0];  
     echo $string_avg; 

它給出了一個錯誤mysql_fetch_array()預計參數1是在代碼的MySQL - PHP mysql_fetch_array()

+2

如果這是新代碼:[**請不要在新代碼**中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再維護和[已正式棄用](http://j.mp/XqV7Lp)。看到紅色框?請參閱[準備的語句](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Amelia

+0

這意味着你的查詢中有一些問題,總是使用'die(mysql_error());'。 – Rikesh

回答

0
$avg_pgt = mysql_query("SELECT avg(convert(custom_var_v1,unsigned)),min(convert(custom_var_v1,unsigned)), max(convert(custom_var_v1,unsigned) FROM `table_name` WHERE server_time BETWEEN '$date 00:00:00' AND '$date 23:59:59'"); 

此查詢失敗和mysql_query正在返回false給定的資源布爾值。檢查您的查詢是否正常,並在其他地方返回結果。 table_name真的是你餐桌的名字嗎?

0

您不應該使用mysql_ *函數,因爲它們自php5以來已被棄用。

使用PDO或mysqli!

mysql_query()文檔頁面:

對於SELECT,SHOW,描述,解釋等語句返回的結果集 ,請求mysql_query()成功返回的資源,或 錯誤FALSE。

如果用戶沒有 有權訪問查詢引用的表,則mysql_query()也將失敗並返回FALSE。

致電mysql_error()找出哪裏出了問題。

1
max(convert(custom_var_v1,unsigned) 

在末尾缺少一個),這會工作:

$avg_pgt = mysql_query("SELECT avg(convert(custom_var_v1,unsigned)),min(convert(custom_var_v1,unsigned)), max(convert(custom_var_v1,unsigned)) FROM `table_name` WHERE server_time BETWEEN '$date 00:00:00' AND '$date 23:59:59'"); 

    $row_all = mysql_fetch_array($avg_pgt);   
    $string_avg = (string)$row_all[0];  
    echo $string_avg; 
+0

這是一雙好眼睛+1 –

0

你缺少)max(convert(custom_var_v1,unsigned)

mysql_ *函數dprecated,使用mysqli_或PDO