【发布时间】:2021-08-05 23:15:22
【问题描述】:
已解决
我有一个 mysql 表 (table1),其中包含许多具有单个 ID 的列。
表名: table1
列:从“pt1 到 pt1000”
id = 1
- 我有一个查询会更新列中的数据,一次更新 10 个数据
- 我需要一个独特的动态查询,在每次提交时按顺序插入 10 个值。
示例:
-
发送查询更新命令(来自 php 表单)
-
我在“pt1”到“pt10”的列中插入10个值
-
使用其他数据发送查询更新命令(来自同一个 php 表单)
-
我在“pt11”到“pt21”等列中插入10个值
问题:如何设置查询,以便它知道将值插入到正确的列中,而不是总是在相同的列中?
感谢大家的帮助
----------------- 编辑 --------------------- --------
我将手动(输入和选择值)从 php 表单传递到 php 查询页面并将这个值插入到变量中以构造动态查询。
例如:
在 PHP 形式中: 有两个选择
1 - 选择数据库(值 = "name_db_i_want_to_update")
2 - 选择列(值 = "1,2,3,4,5,6,7,etc")
在 PHP 查询页面中:
- 选择数据库值作为“$ db”
- 选择列作为“$ set”
- 带有查询集的IF 语句。 IF 列值 = 1 ELSE IF 等,$ setquery = pt1 = "value1","value2" 等。
- 构造动态查询(UPDATE $db SET $setquery WHERE id=1)
这不是最好的解决方案,作为编程逻辑当然也是错误的,但它确实有效。
感谢大家的帮助
【问题讨论】:
-
你有没有尝试过?你到底卡在哪里了?
-
columns: from "pt1 to pt1000"- 这是一个设计不良的数据库的标志。您可能需要重新考虑您的方法。这些列代表什么? -
为什么你有 1000 列,而不是 10 + 一个表明你是否需要第一、第二、第三、第四……第 100 组字段的字段?
-
我没有尝试过任何东西,因为我不知道该感觉如何。我有一个有效的查询更新,但手动预设值。因此,对于每个条目,我都必须手动更改查询。我曾想过用预设查询准备X php文件并通过php表单中的select调用正确的文件,我会解决它但它很麻烦并且需要很长时间。我不知道您是否可以设置更新查询以插入从第一列开始的值,例如没有空值??谢谢
-
您遇到这些问题是因为您的数据库设计不好(这是轻描淡写的说法)。写入数据库不应该如此复杂或繁琐。你需要重组你的表。这些可能应该是不同表中的行,而不是列。但我只是猜测。
标签: php mysql forms phpmyadmin