我是新手,需要有关PHP MySQL的帮助。
我有两张桌子:
表1:
主页| 工作|体育|购买 YES |购买没有 _ __ _ __ _ __ _ __ _ < / EM> __ _ __ _ __
电视|笔记本| 鞋| |
DVD |桌|球| |
表2:
产品| 购买| 预算
的 _ __ _ __ _ __ _ __ _ __ _ __ _ __
电视| YES | 500
电视| NO | 5
笔记本| YES | 400
笔记本电脑| NO | 3
鞋| YES | 80个
鞋| NO | 1
DVD | YES | 60个
DVD | NO | 2
台| YES | 700个
台| NO | 1
球| YES | 20个
球| NO | 1个
如何从“Table2”获取值并将每个值相乘并将其存储在“Table1”的下一列中?
例如:
购买YES =电视*笔记本电脑*鞋子 = 500 * 400 * 80
购买NO =电视*笔记本电脑*鞋子 = 5 * 3 * 1
也可以到下一行。我希望你明白我的意思。
感谢您的帮助。
答案 0 :(得分:1)
您的数据库架构是一场噩梦,但您可以这样做
UPDATE table1 t LEFT JOIN table2 h_yes
ON t.home = h_yes.items
AND h_yes.buy = 'YES' LEFT JOIN table2 h_no
ON t.home = h_no.items
AND h_no.buy = 'NO' LEFT JOIN table2 w_yes
ON t.work = w_yes.items
AND w_yes.buy = 'YES' LEFT JOIN table2 w_no
ON t.work = w_no.items
AND w_no.buy = 'NO' LEFT JOIN table2 s_yes
ON t.sport = s_yes.items
AND s_yes.buy = 'YES' LEFT JOIN table2 s_no
ON t.sport = s_no.items
AND s_no.buy = 'NO'
SET t.buy_yes = COALESCE(h_yes.budget, 1)
* COALESCE(w_yes.budget, 1)
* COALESCE(s_yes.budget, 1),
t.buy_no = COALESCE(h_no.budget, 1)
* COALESCE(w_no.budget, 1)
* COALESCE(s_no.budget, 1);
结果:
| HOME | WORK | SPORT | BUY_YES | BUY_NO | |------------|--------|-------|----------|--------| | Television | Laptop | shoes | 16000000 | 15 | | DVD | desk | ball | 840000 | 2 |
这是 SQLFiddle 演示
答案 1 :(得分:0)
值得修改你的表格。我不确定它们是否适合作为表1中的一行(根据我的理解)并不代表单个项目/实例。
无论如何,你会想看看这里找到的Mysqli for PHP:PHP Manual - Mysqli 1。
Mysqli将允许您从MySQL数据库中检索数据,并从那里,您可以使用PHP来执行所需的操作。
理论上,您将希望使用Mysqli使用给定的SQL查询返回数据集。然后使用PHP,遍历数据集的每一行并执行必要的功能。