php - 存储 SQL 结果以在其他网页上使用

标签 php html mysql sql

我的网页上有一个表单,用于根据用户输入的内容过滤数据库:

enter image description here

对数据库的 Ajax 调用实时返回查询满足的属性计数:

$query = "
SELECT 
* 
FROM 
first_page_data 
WHERE 
((((acos(sin((".$lat."*pi()/180)) * sin((`geo_lat1`*pi()/180))+cos((".$lat."*pi()/180)) * cos((`geo_lat1`*pi()/180)) * cos(((".$lon."- `geo_lon1`)* pi()/180))))*180/pi())*60*1.1515) * 1.609344) < ".$range."
AND
value_min >= " . $valmin . " 
AND 
value_max <= " . $valmax . " 
AND 
bed_min >= " . $bedmin . " 
AND 
bed_max <= " . $bedmax;

$result = mysql_query($query, $first_data);
$number = mysql_num_rows($result);
echo $number;

这工作正常,一切都按我想要的方式工作。不过,我现在想对结果做“一些事情”(例如,单击按钮时将它们全部显示在表格中,在谷歌地图上显示它们等)。如何存储此查询的结果以便在其他网页上使用?我无法在另一个页面上重新查询数据库,因为结果取决于用户在此表单上的输入。

最佳答案

您可以将它们存储在临时 session 中。我实际上并不提倡这种方法,但不知道您的整个环境应该提供解决方案。

$result = mysql_query($query, $first_data);
while($row = mysql_fetch_assoc($result)) {
    $_SESSION['store'][] = $row;
}

如果可以的话,我还强烈建议迁移到使用 mysqli,一旦完成此操作,您可以使用来清除它

unset($_SESSION['store']);

如果您的结果集很大,我不建议将其存储在临时 session 中。将其作为 json 数组存储到文件中。

while($row = mysql_fetch_assoc($result)) {
    $rows[] = $row;
}

file_put_contents($unique_var . '.txt', json_encode($rows));

您需要设置一个唯一值,以便稍后可以检索正确的文件。使用完成后删除文件:

unlink($unique_var . '.txt');

那么 future 的证明又如何呢? SESSION 存储更容易,但对于大量结果集和大量用户,这可能非常消耗资源,因此请尝试以下操作:

$result = mysql_query($query, $first_data);
while($row = mysql_fetch_assoc($result)) {
    $rows = $row;
}

if(count($rows) < 51) {
    $_SESSION['store'] = $rows;
} else {
    file_put_contents($unique_var . '.txt', $rows);
}

您稍后可以像这样访问它:

if(!isset($_SESSION['store'])) {
    $contents = file_get_contents($unique_var . 'txt');
    unlink($unique_var . '.txt');
} else {
    $contents = $_SESSION['store'];
    unset($_SESSION['store']);
}

这样您将始终尽快清除 session 和临时文件。

关于php - 存储 SQL 结果以在其他网页上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21971750/

相关文章:

php - 如何使用 PHP 脚本只获取数据库的内容

php - 将 group by 和 min 子句与 inner join 一起使用时数据不一致

php - 使用 Swift、SlimPHP 和 MySQL 将 iOS 应用程序连接到数据库

javascript - 使用 JavaScript 删除 HTML 中的表 tr

javascript - 将 jQuery.html() 的值加在一起?

javascript - 在 2018 年使用 vanilla JavaScript 创建下拉菜单/下拉菜单(ES 6/7?)

mysql - 用于存储整数的数据库模式

php - 在 MySQL 列中查找最大值

php - 通过超链接发布数据

php - blueimp文件上传--将表单数据插入多个数据库表