Как использовать функцию AVG? - PullRequest
4 голосов
/ 10 июня 2010

Я новичок в php и mysql, и я пытаюсь использовать функцию avg, но я не знаю, как это сделать.

Я пытаюсь сделать что-то вроде этого:

mysql_connect(localhost,$username,$password);

@mysql_select_db($database) or die ("Did not connect to $database");

mysql_query("AVG(column1) FROM table1 ") or die(mysql_error());

mysql_close();

echo AVG(column1);

(Q1) Я хотел бы видеть значение, напечатанное на экране, но я получаю только сообщение об ошибке. Как я могу напечатать это среднее значение на экране?

(Q2) Если бы в моей таблице1 был столбец month, как я могу вывести средние значения по месяцам?

Извините за плохой английский, и спасибо за внимание.

Ответы [ 3 ]

3 голосов
/ 10 июня 2010

Решение для Q1: SELECT AVG(column1) FROM table1

Решение для Q2: SELECT AVG(column1), month FROM table1 GROUP BY month

1 голос
/ 10 июня 2010

Что читать?

  1. MySQL SELECT синтаксис
  2. MySQL AVG() функция - есть даже пример того, что вам нужно
  3. PHP mysql_fetch_assoc() функция , которая является одним из нескольких способов получения данных из набора результатов
  4. кстати: PDO намного лучше для связи с базой данных в PHP

Ad. 1:

$sql    = 'SELECT AVG(col_name_1) AS avgColName FROM tbl_name;';
$query  = mysql_query($sql);
$result = mysql_fetch_assoc($query);

var_dump($result['avgColName']);

Ad. 2:

SELECT ... FROM ... GROUP BY MONTH(date_col_name);
0 голосов
/ 10 июня 2010

Вам необходимо вернуть результат запроса в переменную, которую вы затем сможете использовать.

Например:

$query = "AVG(column1) FROM table1";     
$result = mysql_query($query);

// Print out result
while($row = mysql_fetch_array($result)) {
echo $row['AVG(column1)'];
}
...