Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> update нескольких строк, я заколебался 
V
    Опции темы
SeregaGREY
Дата 3.3.2012, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 28.7.2006

Репутация: нет
Всего: 0



я заколебался.
что я делаю не так?

вот код:
Код

$result=mysql_query("select * from clients where status='active' and balance > '0';");
if($result && mysql_num_rows($result)>0){

while ($line = mysql_fetch_array($result, MYSQL_NUM)) {

$spishem = $line[3]/30; // Сколько спишем денег в день (тариф делим на 30 дней в мес.)
mysql_query("update clients set balance=balance-".$spishem.";");
}

почему оно то обновляет только последнюю строку в таблице то обновляет обе на одинаковое значение?
я же всё делаю во while, то есть логика такая что оно для каждой строки рассчитает
Код

$spishem = $line[3]/30;

и сделает
Код

mysql_query("update clients set balance=balance-".$spishem.";");

а оно лил не длоя каждой или для всех строк одно значение считает
PM MAIL   Вверх
$дмитрий
Дата 3.3.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 3
Всего: 45



Цитата

а оно лил не длоя каждой или для всех строк одно значение считает 

Ну правильно, запрос "update clients set balance=balance-".$spishem.";" означает обновить значение balance во всей таблицы clients

Нужно прописать условие, какие именно строки следует обновить. Примерный запрос:
Код

mysql_query("update clients set balance=balance-".$spishem." where id = '".$line[0]."';");

PM MAIL   Вверх
SeregaGREY
Дата 3.3.2012, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 28.7.2006

Репутация: нет
Всего: 0



Цитата($дмитрий @ 3.3.2012,  14:34)
Цитата

а оно лил не длоя каждой или для всех строк одно значение считает 

Ну правильно, запрос "update clients set balance=balance-".$spishem.";" означает обновить значение balance во всей таблицы clients

Нужно прописать условие, какие именно строки следует обновить. Примерный запрос:
Код

mysql_query("update clients set balance=balance-".$spishem." where id = '".$line[0]."';");

прикольно. сработало. жаль сам не додумался:)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.