【问题标题】:Returning a resultset from one page to another in PHP在 PHP 中将结果集从一个页面返回到另一个页面
【发布时间】:2011-12-14 04:08:19
【问题描述】:

我有 2 个 php 页面:query.phpresult.php

query.php 中,我正在执行一个查询(选择)语句。它正在返回一个结果集

$rs = mysql_query($query);

现在我想将此结果集从 query.php 返回到另一个页面 result.php 并使用它。像这样:

query.php:

return $rs

result.php:

$result = executeQuery($query) // we get the resultset in this variable
while ($row == mysql_fetch_array($result){
//do something 
}

如果以上不推荐,请提供替代方案。但是我想要不同页面的查询函数和结果集。

【问题讨论】:

    标签: php resultset


    【解决方案1】:

    如果您只是希望在源文件中保持代码独立,但实际上不需要从一个页面重定向到另一个页面,则可以在 query.php 页面中包含 results.php:

    在query.php中:

    $rs = mysql_query($query);
    include "results.php";
    

    在 results.php 中:

    while ($row == mysql_fetch_array($rs){
      //do something 
    }
    

    至于试图将 $rs 从一个页面“返回”到另一个页面,这不是 PHP 的工作方式。 return 语句仅在函数内有效。如果您想将数据从一个 PHP 页面实际传递到另一个页面并重定向到另一个页面,那么您需要使用会话、cookie、在 URL 中传递它(即使用 GET)或使用 curl 并添加它作为一个 POST 变量。

    【讨论】:

    • 但是从一个页面到另一个页面返回一个数组是可能的,不是吗?所以如果我可以在 query.php 页面中创建一个数组并将其返回到 results.php 页面,我可以使用它。但坚持怎么做?有什么帮助吗?
    • 您不能将某些内容从一页“返回”到另一页。您将函数的结果返回到调用该函数的代码中的位置。您不能只在页面中创建一个数组并将其“返回”到另一个页面。也许如果您首先详细说明为什么要拥有两个 PHP 文件(编辑您的原始帖子,不要在此评论线程中添加详细信息),我们可以提供更多帮助。
    • 好的,现在我明白了.. 我正在尝试将它单独保存在 2 个差异页面中,以便我可以重复使用。
    • 您可以将它重新用作包含文件,这是很多人所做的。请参阅php.net/includephp.net/require 了解更多信息。
    【解决方案2】:

    如果确实如此,请将结果集存储在数据库中的某个位置或文件中,并为每个结果指定一个唯一的名称。然后将该名称传递到下一页以便检索。

    例如query.php 将重定向到result.php?result_set=ab24sdfsdfklls

    这还有一个额外的好处,即您可以根据需要随时使用 result_set。访问者在一次访问中可以有多个结果集。他们可以将结果集页面的 URL 分享给其他人等。

    请务必最终修剪数据存储,因为它会继续增长,但这完全是另一回事。

    【讨论】:

    • 但是如何在 URL 中发送结果集?结果集返回一个资源ID,不是吗..如果我们在U​​RL中发送它,我们如何从URL中的resourceid中检索数据?请帮助
    猜你喜欢
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    相关资源
    最近更新 更多