X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Как посчитать сумму одного столбца таблицы по определенному критерию?
sc2r2bey
sc2r2bey
Topic Starter сообщение 14.9.2009, 12:33; Ответить: sc2r2bey
Сообщение #1


как посчитать сумму одного столбца таблицы по двум критериям?
[php]$master = "SELECT * FROM master ORDER BY id";
$master_query = mysql_query("$master");
while ($master_select = mysql_fetch_assoc($master_query))
{
echo $master_select['name'];
$summa = "SELECT * FROM visit WHERE date= '".$day."' AND id_master= '".$master_select['id']."'";

$summa_query = mysql_query("$summa ");
while ($summa_select = mysql_fetch_assoc($summa_query))
{
$s += $summa_select['summa'];
echo $s;
}

}
}[/php]

вот так он выдает всю прогрессию суммы, а мне надо конечную цифру


--------------------
Заметки о разработке и не только
программирую web и для we
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 14.9.2009, 13:07; Ответить: yury_mw
Сообщение #2


(sc2r2bey @ 14.9.2009, 12:33) *
вот так он выдает всю прогрессию суммы, а мне надо конечную цифру

sc2r2bey,
не пробовали вынести echo за цикл?
[php] while ($summa_select = mysql_fetch_assoc($summa_query))
{
$s += $summa_select['summa'];
}
echo $s;[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 14.9.2009, 13:16; Ответить: sc2r2bey
Сообщение #3


выносил он тогда одну и ту же сумму всем добавляет


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 14.9.2009, 17:57; Ответить: ZiTosS
Сообщение #4


sc2r2bey,
А не пробовал воспользоваться стандартами MySQL
[php]$master = "SELECT * FROM master ORDER BY id";
$master_query = mysql_query($master);
while ($master_select = mysql_fetch_assoc($master_query))
{
echo $master_select['name'];
$summa = "SELECT SUM(summa) as all_summa FROM visit WHERE date='{$day}' AND id_master={$master_select['id']}";
$summa_query = mysql_query($summa);
if(mysql_num_rows($summa_query) == 1)
{
$summa_select = mysql_fetch_assoc($summa_query);
echo "Количество визитов: {$summa_select['all_summa']}<br><br>";
} else {
$echo "Некорректная сумма.<br><br>";
}
}[/php]
В твоём примере ужас написан... Сам подумай, во первых у тебя нигде не задана переменная $s, к чему же будет прибавляться суммирование? В худшем случае к ничему иному как null, которое имеет случайное значение. В лучшем к нулю. Но это дело так же не меняет. У тебя после внутреннего обхода цикла переменная $s нигде не обнуляется, поэтому у тебя так и будет плюсоваться плюсоваться всё в неё...
.
А вообще подобные таблицы визитов имеют очень большую нагрузку...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 14.9.2009, 22:33; Ответить: sc2r2bey
Сообщение #5


а что такое стандарты mysql?
я знаю, что подобная вещь реализуется через join но я в этом ни бум бум


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 14.9.2009, 22:35; Ответить: ZiTosS
Сообщение #6


sc2r2bey, я имел ввиду что есть в стандартном синтаксисе MySQL. Там есть функция SUM. Я написал код, должен быть рабочий.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 14.9.2009, 22:50; Ответить: sc2r2bey
Сообщение #7


да вроде работает, теперь хочу оптимизировать его :)

попробую снова задачу поставить, есть таблица master в ней 2 поля id и name, т.е идентификатор и имя мастреа, есть 2-я таблица visit в ней много полей в частность id_master, summa и date соотетсвтенно идентификатор мастера, некое число и дата посещения, как сделать, чтоб отобразить всех мастеров по порядку, плюс рядом общую сумму чисел, которые были записаны в определенную дату?


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 14.9.2009, 23:26; Ответить: ZiTosS
Сообщение #8


sc2r2bey,
[php]$sql = "SELECT *,SUM(summa) as all_summa FROM master LEFT JOIN visit ON master.id=id_master WHERE date='{$day}' ORDER BY id";
$query = mysql_query($sql);
if(mysql_num_rows($query) > 0)
{
while ($array = mysql_fetch_assoc($query))
echo "Имя: {$array['name']}<br>Сумма: {$array['all_summa']}<br><br>";
}[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 15.9.2009, 10:03; Ответить: sc2r2bey
Сообщение #9


не работает


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 15.9.2009, 11:26; Ответить: ZiTosS
Сообщение #10


sc2r2bey, Проверял у себя, у меня всё работало, покажите в каком формате у вас дата, да и вообще структуру полей скрином выложите. Потому что у меня всё работало...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1120 26.3.2024, 14:13
автор: knezevolk
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
12 uahomka 2291 25.3.2024, 6:52
автор: Skyworker
Открытая тема (нет новых ответов) Как отозвать банковский платеж фрилансеру?
28 metvekot 3913 25.3.2024, 6:34
автор: Skyworker
Открытая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
23 freeax 3640 24.3.2024, 20:55
автор: Liudmila
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 1934 23.3.2024, 7:41
автор: Room


 



RSS Текстовая версия Сейчас: 29.3.2024, 2:16
Дизайн