我使用用户的IP地址,使用Haversine公式找到离用户位置最近的机场,最后将结果分配给我的变量$ AirportID。
while($row = mysqli_fetch_assoc($result)) {
$AirportID = $row[Airport];
}
我有5个其他php / sql查询(包含在我的index.html中),需要此变量来查询数据库。是否有更简单,更优雅的方式来引用所有文件的最近机场($ AirportID),而不是必须在每个PHP脚本上包含/运行定位器脚本?
谢谢Stack Overflow社区!
答案 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']);