Я должен написать два оператора SQL для обновления записи, есть ли лучший способ сделать это?

0

Я хочу обновить таблицу:

$result=mysql_query("select balance from tablename where userid='$userid")or die(mysql_error());
$row=mysql_fetch_assoc($result);
$accountbalance=$row['balance'];
if($accountbalance>$cost)
{
$result=mysql_query("update tablename set balance-'$cost' where userid='$userid")or die(mysql_error());
}
else {
...
}

Видите ли, мне нужно написать два оператора mysql, есть ли лучший способ сделать это?

mysql_query("update users set balance=balance+'$pwbalance'-'$totalprice' where memberid='$memberid' and (balance+'$pwbalance'-'$totalprice')>=0")or die(mysql_error());
$count=mysql_affected_rows();

Почему $count равен 0, даже я думаю, что это должно быть 1?

  • 0
    В ожидании решения.
  • 0
    Знаете ли вы, что $count равен 1 в вашем исходном подходе с двумя запросами?
Теги:
database
sql-update

1 ответ

3
Лучший ответ
UPDATE tablename SET balance=balance-$cost WHERE userid=$userid AND balance > $cost
  • 0
    Если вы проверите этот баланс> стоимость, я буду уверен, что хотя бы 1 строка была обновлена. "Недостаточно баланса, обновлено 0 строк" :-)
  • 0
    поэтому я использую mysql_affered_rows, чтобы получить результат?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню