Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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_Sql_Design Patterns_Select - Fatal编程技术网

如何在PHP中设计搜索和更新功能(并在页面之间传递数据)?

如何在PHP中设计搜索和更新功能(并在页面之间传递数据)?,php,sql,design-patterns,select,Php,Sql,Design Patterns,Select,这个问题以前可能被问过,但我找不到答案。我为可能再次提出问题提前道歉 在PHP中设计搜索和更新功能的合适方法是什么?搜索符合用户条件的记录,选择特定记录,并更新该记录上的数据 这是一个基于用户帐户的系统(因此用户注册并创建帐户)。MySQL是后端的数据库。用户可以创建内容、搜索内容、编辑自己的内容和删除自己的内容 我看到有三页: 第1页。搜索页面-在此页面上,用户将输入他们正在搜索的内容 当用户激活“搜索”按钮时,表单将进行一些处理,以确保输入有效/所有字段都已填写,等等 第2页。结果页面-在此

这个问题以前可能被问过,但我找不到答案。我为可能再次提出问题提前道歉

在PHP中设计搜索和更新功能的合适方法是什么?搜索符合用户条件的记录,选择特定记录,并更新该记录上的数据

这是一个基于用户帐户的系统(因此用户注册并创建帐户)。MySQL是后端的数据库。用户可以创建内容、搜索内容、编辑自己的内容和删除自己的内容

我看到有三页:

第1页。搜索页面-在此页面上,用户将输入他们正在搜索的内容

当用户激活“搜索”按钮时,表单将进行一些处理,以确保输入有效/所有字段都已填写,等等

第2页。结果页面-在此页面上,将显示搜索条件的结果

每个结果旁边都有一个按钮或超链接,允许用户编辑内容

第3页。编辑页面-在此页面上,将显示所选记录,用户可以编辑内容,例如更改注释、更改值等

我认为这3页的格式是相当标准的。我不知道什么是从一页到另一页传递数据的适当方式,以及如何以及何时执行SQL SELECT语句

在第1页,用户点击“搜索”,表单进行一些验证,如果所有内容都通过了验证,那么搜索条件应该通过URL传递到第2页?这样合适吗

在第2页上,执行SQL SELECT搜索满足输入条件的行。将显示与输入条件匹配的行。用户选择一条记录并激活超链接。超链接是否通过URL将所选记录的记录id传递到第3页?这样合适吗

然后在第3页上,执行另一个SQL选择,这次是针对所选的特定记录。这样合适吗

总结如下:

1) 通过URL将查询条件从搜索页面传递到结果页面是否合适

2) 通过URL将要编辑的记录的记录id从结果页面传递到编辑页面是否合适

3) 在此过程中是否可以执行2次SQL选择:在结果页面上执行1次SQL选择以选择与搜索条件匹配的所有记录,在编辑页面上执行1次SQL选择以显示要编辑的记录的属性

我知道有“一百万种不同的方式”通过计算机程序来完成任务。这是我喜欢的计算机编程和设计的一个方面——程序员解决问题的创造力。也就是说,我上面列出的方法(设计模式)合适吗?这种设计模式是否存在严重缺陷?有没有公认的“更好的方法”可以做到这一点


感谢阅读。

无论您做什么,只要确保您从未,曾经曾经在查询字符串中传递SQL查询!!您将容易受到最简单的注射攻击

请阅读以下答案:

谷歌机器人会找到你的页面。想要查看这样做的页面(查询字符串中的查询?)。请看这里:


我觉得你建议的设计不错。您可以通过URL传递查询,只需确保在每个页面上检查用户是否具有访问该页面的权限。另一种方法是,您可以通过带有“post”方法的html表单传递查询和记录id,这样您传递的内容就不会显示在URL中-谢谢您的回复。这是一个“我不知道我不知道的东西”的例子:-)你能详细介绍一下你使用“post”方法的想法吗?在第2页,我如何使用“post”来了解搜索条件是什么?在第3页,我如何使用“post”来知道要搜索的记录?在第1页,您可以构建一个html表单,使用类似
的东西将数据发布到第2页。您熟悉html表单吗?在第2页,表单传递的所有数据都可以在
$\u POST
arrayHi Brian中读取-感谢您的回复。是的,我熟悉w html表单。你的建议很有道理。在转到第2页之前,是否有任何方法对第1页上的输入执行验证?我最初的想法是对第1页的输入进行验证。如果输入失败,请停留在第1页,直到输入“通过”。然后转到第2页。有两种方法可以验证(您可能希望同时使用这两种方法)。当用户提交表单时,可以使用javascript验证表单,除非表单有效,否则不提交表单。然后在第2页上,您可以用php验证它,如果它无效,将它们重定向回第1页,并显示错误消息good point,您不应该传递查询,但您可以传递用户正在搜索的各个参数。但是整个问题应该是毫无疑问的。很抱歉造成混乱。我没有说得那么清楚。我不会传递查询,但我会传递查询的参数(例如?text=牛排和餐食=晚餐)。