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

Ниже приведен мой очень простой код. Мне нужна помощь, потому что когда-нибудь мое заявление ниже будет обновляться дважды.

$queryCS = "Select * FROM coin_market_sell";
$resultCS=mysql_query($queryCS);
while($rowCS=mysql_fetch_array($resultCS)){
  $cms_id=$rowCS['cms_id'];
  $cms_by=$rowCS['cms_by'];
  $cms_coin_amount_balance=$rowCS['cms_coin_amount_balance'];
  $cms_coin_id=$rowCS['cms_coin_id'];
  $wallet_amountnew=0;

  $queryCOIN2 = "Select * FROM wallet WHERE user_id=$cms_by and currency_id=$cms_coin_id";
  $resultCOIN2=mysql_query($queryCOIN2);
  while($rowCOIN2=mysql_fetch_array($resultCOIN2)){
    $wallet_id=$rowCOIN2['wallet_id'];
    $wallet_amount=$rowCOIN2['wallet_amount'];
    $wallet_amountnew=$wallet_amount+$cms_coin_amount_balance;
  }

  mysql_query("UPDATE wallet SET wallet_amount='$wallet_amountnew' WHERE wallet_id='$wallet_id'");
  mysql_query("DELETE FROM `coin_market_sell` WHERE `coin_market_sell`.`cms_id` = $cms_id");
}

Добавьте остальную часть кода... убедитесь, что $query1 не вызывается дважды

GabrieleMartini 13.02.2019 15:52
Останавливаться с использованием устаревшего mysql_* API. Перейти к mysqli_* или PDO
Jens 13.02.2019 15:55

Пожалуйста помоги мне с этим. Я вызываю непроданный баланс таблицы coin_market_sell и добавляю обратно в базу данных кошелька пользователя, но проблема в том, что иногда обновляется дважды. например, теперь пользователь Кошелек имеет 100, тогда непроданные в таблице имеют 50, предположим, что добавление будет 150 в качестве новой суммы, но он показывает 200 в базе данных, что означает 100 + 50 + 50

user3445785 13.02.2019 16:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
3
36
1

Ответы 1

Я не на сто процентов уверен в том, что вы пытаетесь сделать, но я думаю, что утверждение UPDATE должно быть внутри внутреннего цикла:

 $queryCOIN2 = "Select * FROM wallet WHERE user_id=$cms_by and currency_id=$cms_coin_id";
  $resultCOIN2=mysql_query($queryCOIN2);
  while($rowCOIN2=mysql_fetch_array($resultCOIN2)){
    $wallet_id=$rowCOIN2['wallet_id'];
    $wallet_amount=$rowCOIN2['wallet_amount'];
    $wallet_amountnew=$wallet_amount+$cms_coin_amount_balance;
    mysql_query("UPDATE wallet SET wallet_amount='$wallet_amountnew' WHERE wallet_id='$wallet_id'");

  }

Кстати: Останавливаться использует устаревший mysql_* API. Перейти к mysqli_* или PDO

Пожалуйста помоги мне с этим. Я вызываю непроданный баланс таблицы coin_market_sell и добавляю обратно в базу данных кошелька пользователя, но проблема в том, что иногда обновляется дважды. например, теперь пользователь Кошелек имеет 100, тогда непроданные в таблице имеют 50, предположим, что добавление будет 150 в качестве новой суммы, но он показывает 200 в базе данных, что означает 100 + 50 + 50

user3445785 13.02.2019 16:03

Другие вопросы по теме