2011-12-29 99 views
1

我有一个php页面,可以从我的数据库中抽取几百个字符(分布在8列中)。它显示在第一页上,但它也需要在第二页上提供。我已经提交表单以便进行所述页面转换。从页面到页面的新mySQL查询或POST信息?

什么我不知道是如果它是更有效的(或首选的某些其他原因),从第一页的POST数据到第二,或者我是否应该查询每一个页面的数据库?在第一页和第二页上还有另一个查询表,如果这有所作为的话。

非常感谢!
比利

回答

2

如果您已经在第一页加载检索到的数据的真正少量的,也可能是更有效的将其存储在$_SESSION而不是重新查询它在随后的pageloads。但是,您不应该通过$_POST将其发布到其他页面,因为这需要将所有数据发送到客户端浏览器,并以HTML形式呈现为某种形式,然后将其发送回$_POST的服务器。 $_SESSION是更好的选择。

$_POST的目的是为用户提供从客户端到服务器的输入,而$_SESSION的目的是在服务器端的客户端页面加载之间保存数据。这正是你的情况。

始终,肯定知道的最好的办法就是与像xdebug的工具来分析你的页面加载。在$_SESSION中重新查询和存储数据时的配置文件执行时间,以查看哪些更具有高性能。

+0

“你不应该将其发布到通过$ _ POST其他页面,然而,因为这需要在HTML中发送的所有数据到客户端浏览器,并使其为某种形式的那么这将被发送回至$ _POST中的服务器“。 无论如何,当我显示数据时不会发生这种情况吗?它正在两页上显示。 谢谢你的回应! Billy – JeepFreak 2011-12-29 04:38:43

+0

@JeepFreak在这种情况下,您恰好会在第一页上显示它。在许多其他情况下,您只会显示一个子集或不显示任何内容,并仅在内部使用它。我的观点是,我应该更清楚地说明,'$ _POST'的目的是为用户提供从客户端到服务器的输入。 '$ _SESSION'的意义在于在服务器端的客户端页面加载之间保存数据。这正是你的情况。 – 2011-12-29 11:47:33

+0

我明白了,我明白了。谢谢你解释。会话很容易实现,这个页面只会被我使用,并且这些信息不会构成安全问题,所以这可能是最有意义的。当我完成它时,我将取消设置该变量。再次感谢@Michael – JeepFreak 2011-12-29 14:54:41

0

我认为在这种情况下,您最好在每个页面上都有自己的查询。如果你有很多信息,你可能会丢失一些数据,而你想POST他们到新的页面。顺便说一下,您将无法修改和更改您的查询及其数据网格。

另一方面,如果您的数据太多,那么在PHP会话中存储大量数据并不容易。此外,您必须小心有关每次使用会话的安全风险。但是,当你提供一些信息时,使用PHP会话是一个好主意,正如Michael所说的那样。此外,如果您确定不需要修改信息,则可以使用jQuery从信息表中获取副本,然后使用window.open函数在新窗口中打印它们。

不要忘记,这些只是我的想法和解决方案。请阅读其他人的评论。

+0

感谢@Mohammad的回应!在你看来,会话变量有多少数据“很多”? – JeepFreak 2011-12-29 14:55:58

+0

JeepFreak,绝对不能说有多少数据是“很多”。这是不可数的,因为你知道...但想象一下,你有大约100条记录和5项作为他们的领域。你是否容易为这500个值创建'会话',之后,再一次阅读它们......? – 2011-12-29 20:59:09