sql-server - 使用冷融合动态更新显示顺序
问题描述
我是一名自学成才的业余爱好者,为一家小型本地非营利组织做志愿者,我正在使用 Coldfusion 更新其网站管理部分。
其中一部分用于在前端按指定顺序显示志愿者。我在表格中添加了一个“显示”列,我在其中设置了志愿者将如何显示的订单号。(1 为第一,2 为第二,以此类推)
我希望能够在更新或添加记录时动态重新排列显示顺序。通常我会请一位高级程序员来做这件事,但这不在预算之内,所以我想我会试一试。
例子:
1 = 1
2 = 2
3 = 3
目前,如果我将 3 更改为 1,我会得到两个 1,而 3 会消失。(预期的)
1 = 1(以前是 3)
1 = 1
2 = 2
我希望更新将其下方的所有记录也移动到更新。
(如果我将 3 移到 1)
1 = 1(以前是 3)
2 = 2(以前是 1)
3 = 3(以前是 2)
或者
(如果我将 3 移动到 2)
1 = 1
2 = 2(以前是 3)
3 = 3(以前是 2)
目前我只是单独更新每条记录,但这显然并不理想,尤其是当志愿者名单增长到十几岁或更多时。
我已经搜索了几个小时来寻找有关如何执行此操作的指导,但不知道从哪里开始。任何帮助将不胜感激。
这是更新表单代码:
<div class="form-group">
<label for="Display">Display Order</label>
<select name="display" class="form-control form-control-lg" required>
<option value="">Select Display Order</option>
<cfoutput query="GetBioDisplay"><option value="#GetBioDisplay.display#">#GetBioDisplay.display#</option></cfoutput>
</select>
</div>
这是更新查询:
<cfquery name = "UpdateProfile" datasource="#dsn#">
UPDATE DBO.PROFILE
SET firstname = '#form.firstname#',
lastname = '#form.lastname#',
title = '#form.title#',
email = '#form.email#',
display = '#form.display#',
Picture = '#form.picture#',
profile = '#form.profile#',
credentials = '#form.credentials#'
WHERE ID = #url.id#
</cfquery>
这是我用于用户/前端的查询:
<cfquery name="GetProfile" datasource="#request.dsn#">
SELECT ID, FIRSTNAME, LASTNAME, TITLE, EMAIL,
PICTURE, DISPLAY, PROFILE, CREDENTIALS
FROM DBO.PROFILE
ORDER BY DISPLAY
</cfquery>
解决方案
添加第二个更新查询
update dbo.profile
set display = display + 1
where display >= <cfqueryparam CFSQLType = "cf_sql_integer" value = "#form.display#">
and id <> <cfqueryparam CFSQLType = "cf_sql_integer" value = "#url.id#">
您也应该在其他查询中使用查询参数。当前更新查询的编写方式会在 O'Malley 之类的名称上引发错误。
编辑从这里开始 为了让用户看到他们应该看到的,改变这个
<cfoutput query="GetBioDisplay">
<option value="#GetBioDisplay.display#">#GetBioDisplay.display#
</option>
</cfoutput>
对此
<cfoutput query="GetBioDisplay">
<option value="#GetBioDisplay.display#">#GetBioDisplay.rownumber#
</option>
</cfoutput>
这将显示用户编号,例如 1、2、3 等
推荐阅读
- c++ - 虚拟地整理碎片内存,就好像它在 C++ 中是连续的一样
- jestjs - 如何测试使用 apollo 客户端 Reactive Var 的组件
- django - 本地建设成功 | CodeBuild AWS 的成功与失败 | 构建日志显示应用程序启动并运行 | 状态永远在进行中
- bash - 将查找文件中的信息写入另一个文件
- javascript - Angular - 图像之间的交叉淡入淡出
- java - 当位移 16 位时,为什么输出因类型转换不同而不同
- jquery - 在进行 ajax 调用时更新按钮文本
- loops - java.lang.IndexOutOfBoundsException?
- python - 如何为 POS 打印机格式化 python 文本
- c - 编译器如何区分 int 和 char 指针?