数据库表更新,其中包含当前数据+来自另一个表中定义的范围的随机数

时间:2013-11-28 13:32:08

标签: php mysql sql

我正在尝试创建一个PHP脚本,但我有点卡住,不知道从哪里开始。也许你可以给我一些提示。

以下是脚本将执行的操作的示例:

我有一个包含两个表的数据库:用户预算。 用户登录后,他有一个菜单,可以增加分配给该帐户的预算。

用户表中有一个名为 AvailableBudget 的字段,定义用户可以花多少钱;虽然预算表包含3个字段(ID,BudgetName,MinBudget,MaxBudget)。

当用户访问预算菜单时,下拉列表会在预算表格中显示BudgetNames。

根据用户选择, AvailableBudget 字段(来自用户表)将使用以下内容进行更新

  

$ newbudget = mysql_query(“UPDATE'用户'SET'FableBudget'=   'AvailableBudget') +(MinBudget之间的随机数 - 在Budgets表中声明的MaxBudget)

现在我不知道从哪里开始,因为 AvailableBudget 字段需要使用当前的AvailableBudget更新+随机数,该数字基于来自另一个表的值,也取决于用户选择的内容从下拉菜单中。 必须指定预算表将包含多个数据:

  
    

(ID,BudgetName,MinBudget,MaxBudget)

         

1 - 预算1 - 100 - 1000

         

2 - 预算2 - 1000 - 10000

  

等等。

2 个答案:

答案 0 :(得分:0)

您可能需要多次查询。我确定在严格的sql中有一种方法可以做到这一点,但这是我的方法。 注意:这是假设预算具有将其分配给用户的唯一标识符。

SELECT u.availablebudget, b.minbudget, b.maxbudget FROM users u
   LEFT JOIN budgets b ON u.id=b.uid

 $newbudget = $oldbudget + rand($minbudget, $maxbudget);


 UPDATE 'users' SET 'AvailableBudget'= 'AvailableBudget'

答案 1 :(得分:0)

我确实没有解决您的问题,但您可以通过这种方式使用另一个表更新一个表。

$newbudget= mysql_query("UPDATE 'users' SET 'AvailableBudget'= 'AvailableBudget') + (select ROUND((RAND() * (max-min))+min) from Budget order by rand() limit 1).