[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сумма всех чисел одного из полей БД
bybad
Здравствуйте, перейдём сразу к делу:
Есть таблица в БД с 6 полями, двум из этих полей присвоен тип float (дробные числа) одно поле называется min другое max.

Примерно это выглядит так:
min
0.1
0.1
0.11

max
0.5
0.4
0.9

и т.д.

На страницу сайта необходимо вывести сумму всех дробных чисел (их будет очень много) каждого из полей, отдельно для min и отдельно для max (т.е. min = 0.31, max = 1.8 ...).
Я только учусь, так что не судите строго. Заранее благодарю за помощь.



Спустя 1 минута, 7 секунд (30.07.2011 - 23:08) sharki написал(а):
читай про агрегирующие функции Sql - SUM()

Спустя 1 минута, 59 секунд (30.07.2011 - 23:10) bybad написал(а):
в интернете нашёл пример использования функции array_sum():

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "<br>";
?>


только не знаю как туда впихнуть данные из моей таблицы.

Спустя 4 минуты, 13 секунд (30.07.2011 - 23:14) sharki написал(а):
bybad
используй суммирование на уровне БД, если это возможно smile.gif а если нет, то создаешь массив посредством цикла while и mysql_fetch_assoc...

покажи свой запрос SQL

Спустя 4 минуты, 31 секунда (30.07.2011 - 23:19) bybad написал(а):
Как то так:
<?php 
$result = mysql_query("select * from daily where id='id'",$db);
$myrow = mysql_fetch_array($result);
echo $myrow["id"];
?>

Таким способом он выводит одно число (первое) вот не знаю как сложить все числа и это осуществить в цикле do while ...

Спустя 9 минут, 21 секунда (30.07.2011 - 23:28) sharki написал(а):
$sql = "SELECT SUM(`min`) AS `smin`, SUM(`max`) AS `smax` FROM `daily` WHERE `id`='id' ";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);

$str = "Суммa min: ".$myrow["smin"];
$str .= "<br/>Суммa max: ".$myrow["smax"];
echo $str;


Это если без циклов, вроде должно сработать, или циклами

while($row = mysql_fetch_assoc($result)) {
....
}


Дальше сам подумай :)

Спустя 21 минута, 37 секунд (30.07.2011 - 23:50) bybad написал(а):
Цитата (sharki @ 30.07.2011 - 20:28)
Это если без циклов, вроде должно сработать

не сработало :(
Выдаёт Суммa min: 0.099999999627471 до Суммa max: 0.51000000722706
Хотя в полях таблицы на данный момент
min
0.01
0.01
0.05
0.01
0.01
0.01
max
0.2
0.05
0.05
0.1
0.01
0.1

я код правильно под себя поправил ?
<?php $sql3 = "SELECT SUM(min) AS smin FROM daily WHERE id='id' ";
$result3 = mysql_query($sql3);
$myrow3 = mysql_fetch_array($result3);

$str = "Суммa min: ".$myrow3["smin"];
echo $str;?>

Спустя 11 часов, 25 минут, 40 секунд (31.07.2011 - 11:15) bybad написал(а):
Попробовал ещё такой вариант
<?php $result2 = mysql_query ("SELECT SUM(min) FROM daily WHERE id='id'",$db);
$myrow2 = mysql_fetch_assoc($result2);
echo $myrow2["min"];?>

тоже не прокатывает, выдаёт ошибку " Undefined index: min"

Спустя 10 минут, 41 секунда (31.07.2011 - 11:26) sharki написал(а):
bybad
Всё правильно он тебе считает, округли в большую сторону и всё.

Спустя 24 минуты, 57 секунд (31.07.2011 - 11:51) bybad написал(а):
Цитата (sharki @ 31.07.2011 - 08:26)
bybad
Всё правильно он тебе считает, округли в большую сторону и всё.

А нельзя как нибудь сделать что бы он нормально считал ?
если стоит тип поля INT считает же всё как надо...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.