[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Прибавление суммы раз в месяц.
DenisovVSh
Доброго времени суток.
Помогите пожалуйста реализовать или может ссыль где подробненько описано. Нужно сделать так чтобы каждого первого числа месяца, одна сумма прибавлялась к другой. Т.е. тариф прибавлялся к задолжности.
Спосибо!



Спустя 9 минут, 33 секунды (19.10.2010 - 05:11) kirik написал(а):
С помощью cron'а, который будет раз в месяц запускать скрипт, который в свою очередь будет суммировать данные.

Спустя 1 час, 41 минута, 19 секунд (19.10.2010 - 06:53) DenisovVSh написал(а):
kirik
А можно по подробнее если не трудно, или ссыль на мануал?

Спустя 12 минут, 2 секунды (19.10.2010 - 07:05) DenisovVSh написал(а):
Цитата (kirik @ 19.10.2010 - 03:11)
С помощью cron'а, который будет раз в месяц запускать скрипт, который в свою очередь будет суммировать данные.

Есть ли другие методы реализации моей проблемы, а то мне не дают доступ к php system((

Спустя 22 минуты, 23 секунды (19.10.2010 - 07:27) DenisovVSh написал(а):
И еще, вот скрипт который должен запускаться в определенное врем:

$schet = date('d_G_i');
if ($schet == '19_11_23')
{
$result=mysql_query("SELECT title, dolg, oplata FROM oplata_tsg", $db);
while ($myrow = mysql_fetch_array($result))
{
$summa = $myrow['oplata'] + $myrow['dolg'];
$result = mysql_query("UPDATE oplata_tsg SET dolg=$summa");
}
}


Но почему то он ко всем строкам поля $myrow['dolg'] пребавляет только значение первой строки поля $myrow['oplata']?
Помогите разобраться, пожалуйста.

Спустя 2 минуты, 41 секунда (19.10.2010 - 07:30) kirik написал(а):
DenisovVSh
Да там как бы не нужна system. В админпанельке хостинга должно быть управление задачами cron'а, если конечно хостинг не "самый бесплатный".

Если уж совсем нет доступа к крону, тогда придется по посещениям - в некий файл пишется дата последнего перерасчета, и при каджом обращении к сайту дата проверяется. Если разница между текущим временем и тем, что в файле больше месяца, то пересчитываем. На момент пересчета лучше создавать файл типа "lock" и проверять его наличие при последующих обращениях (чтобы небыло паралельных пересчетов). Ну или сразу менять дату в файле (что тоже поможет избежать паралельных запросов).

Спустя 4 минуты, 20 секунд (19.10.2010 - 07:34) kirik написал(а):
DenisovVSh
Почему в UPDATE запросе нет WHERE? Получается что у тебя происходит одинаковый UPDATE для всех ячеек.

Спустя 6 минут, 21 секунда (19.10.2010 - 07:40) DenisovVSh написал(а):
kirik
Подскажи как сделать, правельно?

Спустя 3 минуты, 49 секунд (19.10.2010 - 07:44) kirik написал(а):
DenisovVSh
правИльно!!!!
Я хз, теоретически у каждой записи в таблице должен быть свой id, по которому и нужно делать UPDATE суммы.

Спустя 9 минут, 56 секунд (19.10.2010 - 07:54) DenisovVSh написал(а):
Спосибо за поправку по русскому)
поле id сушествует в моей базе, как сделать чтобы нужная строка поля oplata плюсовалась к нужной строке поля dolg.

$result=mysql_query("SELECT title, dolg, oplata FROM oplata_tsg", $db);
while ($myrow = mysql_fetch_array($result))
{
$id = $myrow['id'];
$summa = $myrow['oplata'] + $myrow['dolg'];
$result = mysql_query("UPDATE oplata_tsg SET dolg='$summa' where id='$id'");
printf ("%s", $summa);
}

Не работает((

Спустя 3 минуты, 26 секунд (19.10.2010 - 07:58) kirik написал(а):
Цитата (DenisovVSh @ 18.10.2010 - 23:54)
Не работает((

И не будет smile.gif Внимательнее..

UPD
кое-чего пропустил в SELECT запросе.

Спустя 3 минуты, 30 секунд (19.10.2010 - 08:01) Michael написал(а):
Одним запросом:
$result = mysql_query("UPDATE oplata_tsg SET dolg=dolg+oplata");

- внешнего цикла не надо, он бессмысленный.
и можешь наверное дописать еще: ,oplata=0 - так как перенеслась в долг.

Спустя 17 минут, 54 секунды (19.10.2010 - 08:19) DenisovVSh написал(а):
Michael спосибо, нужный совет
kirik тебе тоже спосибо)

Осталось теперь сделать что бы все это суммировалось в определенный день и определенное время, каждого месяца автоматически.
Быстрый ответ:

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