【问题标题】:Update the users where amount <=0 set credits更新数量 <=0 设置信用的用户
【发布时间】:2018-08-25 02:04:57
【问题描述】:
$check_empty_user = $DBcon->query("SELECT * FROM bubble_spends where a_amount <= 0");
$count=$check_empty_user->num_rows;
$username23=$DBcon->query("SELECT a_name FROM bubble_spends where a_amount <= 0 LIMIT 1");

$count2=$username23->fetch_array;

 if (!$count==0) {

  $DBcon->query("DELETE FROM bubble_spends where a_amount <= 0");
  $DBcon->query("UPDATE users SET credits = credits+100000 WHERE username='$count2'");
        echo "user has been outspended";
    }

主要目的是通过它实现,当一个bubble_spend的金额小于0时,应该从bubble花费中选择a_name,然后更新users set credits=credits+10 where username=$a_name

但这不起作用,我忙了 2 个小时,我无法修复

【问题讨论】:

  • 更新用户 SET credits = credits+100000 WHERE username='$count2'" 什么是 credits+100000 credits 以及你设置它的位置
  • "更新用户 WHERE username=$count2 SET credits = credits+100000");也不行
  • 老兄,我问你设置 credits+100000,所以我想知道其中的 credits 是什么以及你在哪里定义它
  • 您是否要对所有积分
  • 在 phpmyadmin 数据库中。在用户 -> 学分

标签: php sql-update


【解决方案1】:

您正在尝试获取 bubble_spends 表中数量小于 0 的所有用户,然后从该表中执行删除并在另一个表上进行更新。

要做到这一点,简单的方法是从bubble_spends表中获取数量小于0的所有名称,然后使用IN运算符加上内部查询来更新它们。更新后,您可以从另一个表中删除它们。

$DBcon->query("UPDATE users SET credits = credits+100000 
WHERE username IN (SELECT a_name FROM bubble_spends where a_amount <= 0)");

$DBcon->query("DELETE FROM bubble_spends where a_amount <= 0");

应该这样做。

【讨论】:

  • 是的,这个确实应该,但它并没有增加 100000 个学分(实际上是 (a_amount2/100*wage))
  • 这很奇怪。 credits = credits + 100000 是有效的,除非您的列名有误。不知道为什么它不适合你。
猜你喜欢
  • 2018-07-13
  • 2022-12-16
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 2014-02-20
相关资源
最近更新 更多