1

我有两个表(caaverage_table)。

ca有三列:Group_id、Group_name、ca_value
average_table有两列:Group_name、ca_value

我想计算ca中所有组的 ca_value 平均值,并用此数据更新 *average_table*。

这就是我所拥有的

    //create average table
$average_table="CREATE TABLE average_table(Group_name CHAR(30) Primary Key, ca_value FLOAT)";

// Execute query
if (mysql_query($average_table))
  {
  echo "Table average created successfully";
  }
else
  {
  echo "Error creating table: " . mysql_error();
  }

//Calculate average
$ca = mysql_query("Select AVG(ca_value) FROM ca");

$data_sql = "INSERT INTO average_table (Group_name, ca_value) Values ('Average all groups',$ca)";
// Execute query
if (mysql_query($data_sql))
  {
  }
else
  {
  echo "Error Selecting group: " . mysql_error();
  }
4

1 回答 1

1

mysql_query返回结果资源指针,而不是查询的实际结果。mysql_fetch_array您必须使用,等获取结果mysql_fetch_assoc。此外,mysql_*不推荐使用;请考虑切换到 mysqli 或 PDO。根据http://us1.php.net/manual/en/function.mysql-query.php上的手册:

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集的语句,mysql_query() 成功时返回资源,错误时返回 FALSE。

返回的结果资源应该传递给 mysql_fetch_array() 和其他处理结果表的函数,以访问返回的数据。

于 2013-04-24T13:27:30.187 回答