[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SQL добавление
zikworld
есть таблица в которой

money count
--------------------------------------------
гривны 19
рубли 123
доллары 21
гривны 668
доллары 124
гривны 23
рубли 239
--------------------------------------------

нужно запросом в базу через PHP добавить все одинаковые деньги чтоб осталось только один вид денег и сумма их количества и осталось только:

money count
--------------------------------------------
гривны 710
рубли 362
доллары 145
--------------------------------------------





Спустя 1 час, 17 минут, 11 секунд (29.06.2012 - 00:42) Invis1ble написал(а):
И ? Ты ждешь готовый код?

Спустя 1 час, 32 минуты, 1 секунда (29.06.2012 - 02:14) ИНСИ написал(а):
Чтобы вытащить валюты с общей суммой, запрос выглядит так
SELECT *, SUM(`count`) AS `size`
FROM `table`
GROUP BY `money`


Спустя 13 часов, 13 минут, 58 секунд (29.06.2012 - 15:28) zikworld написал(а):
$query = mysql_query("SELECT money, SUM(`count`) as `count` FROM `table` GROUP BY money HAVING COUNT(money)>1");
while($result = mysql_fetch_array($query)) {
$money = $result['money'];
$count = $result['count'];

mysql_query("DELETE FROM `table` WHERE `money`=$money");
mysql_query("INSERT INTO `table` SET `money`='{$money}', `count`='$count'");
}



почему я обратился....да потому что в этом коде гдето серьезная ошибка и иногда(рандомно, случайно) не каждый раз, деньги могут удваиваться я не пойму как но они просто удваиваются...одна валюта например доллар должен быть 145 а в один "прекрасный" момент становится 290...иногда на странице по 2 раза этот код может быть. И я вас уверяю нету повторения переменных на странице...Где может быть ошибка?

Спустя 1 час, 21 минута, 30 секунд (29.06.2012 - 16:49) ИНСИ написал(а):
$query = mysql_query("
SELECT *, SUM(`count`) as `size`
FROM `table`
WHERE `size` > 0
GROUP BY `money`
"
);

if(mysql_num_rows($query) > 0) {
while($data = mysql_fetch_assoc($query)) {
mysql_query("
DELETE
FROM `table`
WHERE `money` = '
{$data['money']}'
"
);

mysql_query("
INSERT
INTO `table`(`money`,`count`)
VALUES('
{$data['money']}','{$data['size']}')
"
);
}
}


Данный скрипт мне не совсем понятен. Но раз уж вам так надо, данный код поможет
Быстрый ответ:

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