include — результат SQL-запроса необходим в качестве переменной для нескольких файлов php, полученных из Index

Я использую IP-адрес пользователя, чтобы найти ближайший аэропорт к местоположению пользователя, используя формулу Haversine, и в конце присваиваю результат моей переменной $ AirportID.

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

У меня есть 5 других запросов php / sql (которые включены в мой index.html), которые требуют эту переменную для запроса базы данных. Существует ли более простой и изящный способ обратиться к этому ближайшему аэропорту ($ AirportID) для всех файлов по сравнению с необходимостью включать / запускать скрипт локатора для каждого отдельного скрипта php?

Спасибо, сообщество Stack Overflow!

0

Решение

Как только вы соберете $AirportIDВы можете хранить его в $_SESSION переменная, а затем другие запросы используют это значение.

Используя этот блок кода, он будет поддерживать AirportID пока у пользователя есть активный сеансовый файл cookie, который обычно удаляется автоматически при закрытии браузера.

<?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']);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]