Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Не могу составить вопрос (Василий) 30/06/2007 - 05:29:39
      Re: Не могу составить вопрос (bac) 30/06/2007 - 22:06:22

> Original message text:
> From: Василий - 30/06/2007 - 05:29:39
> Subject:Не могу составить вопрос
> -----------------
> Пишу простой скрипт на биллинг - в таблице пользователи следующие столбцы id login password cash (баланс) tarif (тариф пользователя)
>
> $result=mysql_query("select * from users ORDER BY `id`");
> while($row=mysql_fetch_array($result))
> {
> mysql_query("update users set cash=cash-1 where tarif='Tarif1' ");
> mysql_query("update users set cash=cash-2 where tarif='Tarif2' ");
> }
>
> При выполнении этого запроса со счета пользователей на тарифе-1 должно списываться 1 услованя еденица, а у пользавателей на тарифе 2 должны списываться 2 еденицы... однако, не работает оно правильно :( cevмы неправильно списывает..
>


From: bac - 30/06/2007 - 22:06:22
Subject:Не могу составить вопрос
-----------------
Оно понятно, что списываются не правильно.
У вас же в цикле по всем записям производится повторное списание.
команда update users set cash=cash-1 where tarif='Tarif1'
действует на все множество выбранных условием where записей.
А вы зачем-то зарядили это в цикл по каждой записи из базы.
Просто без всякого цикла будет правильно
mysql_query("update users set cash=cash-1 where tarif='Tarif1' ");
mysql_query("update users set cash=cash-2 where tarif='Tarif2' ");


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
31751



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |