SQL查询结果需要作为源自Index的多个php文件的变量

时间:2018-01-31 17:33:04

标签: php include organization globals

我使用用户的IP地址,使用Haversine公式找到离用户位置最近的机场,最后将结果分配给我的变量$ AirportID。

while($row = mysqli_fetch_assoc($result)) {
        $AirportID = $row[Airport];
    }

我有5个其他php / sql查询(包含在我的index.html中),需要此变量来查询数据库。是否有更简单,更优雅的方式来引用所有文件的最近机场($ AirportID),而不是必须在每个PHP脚本上包含/运行定位器脚本?

谢谢Stack Overflow社区!

1 个答案:

答案 0 :(得分:0)

收集$AirportID后,您可以将其存储在$_SESSION变量中,然后让其他查询使用该值。

使用这段代码,只要用户有活动的会话cookie,它就会保持AirportID,通常会在关闭浏览器时自动删除。

<?php
session_start();

if (isset($_SESSION['AirportID'])) $AirportID = $_SESSION['AirportID'];
else {
// Look it up if it doesn't already exist

 $result = mysqli_query('<your query> LIMIT 1;');
 $row = mysqli_fetch_assoc($result);
 $AirportID = $row['Airport'];

 $_SESSION['AirportID'] = intval($AirportID);
}

我更改了代码以反映您只检索一行。不需要while循环。

另外,永远不要忘记字段名称周围的引号。它将导致PHP首先检查是否存在名为Airport的常量,然后再检查字段名称。

请注意,如果有表单允许他们更改此值,或者他们的IP更改,则会话变量应为unset

unset($_SESSION['AirportID']);