2012-04-12 6 views
0

Я пытаюсь получить сумму столбца.MySQL SUM function

Мои схемы, как показано ниже ...

scheme screen shot

Я хотел бы получить сумму «счета».

У меня есть следующие ...

<?php 
    $uid = $_SESSION['oauth_id']; 
    $query = mysql_query("SELECT * FROM `users`, `income`, `outgoings` WHERE users.oauth_uid = '$uid' and income.user_id = '$uid' and outgoings.user_id = '$uid'") or die(mysql_error()); 
    $result = mysql_fetch_array($query); 
    ?> 

    Outgoings = <?php echo $result["SUM(total)"]; 

Я не получаю никакого вывода, однако. Кто-нибудь может увидеть, где я ошибаюсь? В моей таблице есть определенные данные.

+5

, потому что '$ result' не имеет индекса' SUM (всего) ' – Michelle

+1

Что сказал Джек. Напишите SQL в SQL-запросе. – cha0site

+0

Зачем вы приносите мир вам? Вы используете все, что получаете? иначе вы могли бы сделать только SELECT sum (bill) FROM users'. –

ответ

1

Функция SUM должна использоваться при принятии решения о возврате из выбора. Вот так.

SELECT SUM(`bill`) FROM `users`, `income`, `outgoings` WHERE users.oauth_uid = '$uid' and income.user_id = '$uid' and outgoings.user_id = '$uid' 
0

Почему бы не просто запросить SUM? Как:

<?php 
     $uid = $_SESSION['oauth_id']; 
     $sum = mysql_query("SELECT SUM(`bill`) FROM `users` WHERE users.oauth_uid = '$uid'") or die(mysql_error()); 
    ?> 
0

Этот запрос получит Вас сумму:

SELECT sum(bill) FROM `the_table` 
1

Попробуйте это, если вы не хотите, чтобы сделать SUM() запрос, как уже предложенных другими:

<?php 
$sum = 0; 
while ($row = mysql_fetch_array($query)) { 
    $sum += $row['bill']; 
} 
?> 
Outgoings = <?php echo $sum; ?> 

Но помните, что вы будете нуждаться в этом, если вы хотите использовать один и тот же набор результатов запроса $:

<?php 
    mysql_data_seek($query , 0); 
?>