Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何解决这个问题,两个人在同一张表格上工作_Php - Fatal编程技术网

Php 如何解决这个问题,两个人在同一张表格上工作

Php 如何解决这个问题,两个人在同一张表格上工作,php,Php,我已经用POST方法表单构建了一个页面。 该表单包含订单列表和每个订单的跟踪编号 在这个页面上,两个人同时工作,更新订单的跟踪号 示例:当人员1使用订单#126792的跟踪号更新表单并单击提交时,数据库将更新订单#126792的跟踪号,并为订单#127299留下空字段 在person 2更新订单127299的跟踪编号的同时,数据库将更新订单127299的跟踪编号,但插入订单126792的空跟踪编号 您可以在附图中看到下面的表格,如何解决这种情况 谢谢。您的问题太宽泛了,因为它实际上取决于您的系

我已经用POST方法表单构建了一个页面。 该表单包含订单列表和每个订单的跟踪编号

在这个页面上,两个人同时工作,更新订单的跟踪号

示例:当人员1使用订单#126792的跟踪号更新表单并单击提交时,数据库将更新订单#126792的跟踪号,并为订单#127299留下空字段

在person 2更新订单127299的跟踪编号的同时,数据库将更新订单127299的跟踪编号,但插入订单126792的空跟踪编号

您可以在附图中看到下面的表格,如何解决这种情况


谢谢。

您的问题太宽泛了,因为它实际上取决于您的系统和用户的行为。另外,如果您不提供任何代码,我就无法真正用代码回答

然而,我可以提供一种决策算法,可能会帮助你

问题:
  • 同一记录能否由两个不同的用户同时更新?

    • :继续2
    • :解决方案C、D或E
  • 用户能否同时更新2个订单?

    • 否:解决方案A
    • 是:继续3
  • 空值是否有意义?(即,用户是否可以通过提交空的“跟踪代码”来更新/删除记录?)

    • 否:解决方案B
    • 是:解决方案C、D或E

  • 解决: A.更改前端,以便用户一次只能更新一个订单箱

    B.忽略后端中的空/假/空值

    C.锁定正在编辑的记录:

  • 用户选择要更新的记录并通知后端
  • 后端锁定正在更新的记录,直到用户更新它或“更新时间”过期
  • D.使用版本系统:使每次更新都成为记录的新版本,如果出现冲突,请在提交数据之前要求最后一个尝试更新的用户解决

    E.使记录“实时”(短轮询或长轮询)



    注意:请记住,这是假设用户是“聪明的”,也就是说,他们的行为只能以可预测的方式进行(您可以在不使用代码的情况下指定),并且他们会服从,不会尝试有趣的东西。

    发布一些代码。但本质上,只更新非空值。您必须更新非空值&添加一个按钮以删除特定订单的跟踪编号,或者在每个字段旁边添加一个复选框并更新选中该复选框的字段。相反,我建议通过在表单加载时跟踪值来仅更新更改的值。它更具侵入性,如果它们都更改了相同的字段/值,可能会导致覆盖,但通常更灵活,因为它允许删除值,而不恢复已设置的值。非常类似于git合并。不知道您使用的是什么数据库,但对于mysql,在更新表的查询中添加“WHERE field为NULL或field=''”