Как можно использовать результат SQL-запроса, выполненного в другом файле?

Каким образом можно использовать результат запроса переменной $all_search, определенной в файле global.php, повторно в mainpage.php, чтобы вывести найденные записи на печать?
  • 17 июня 2024 г. 18:11
Ответы на вопрос 3
Для использования результатов SQL-запроса, выполненного в другом файле, вам необходимо передать полученные данные из одного файла в другой. 

В вашем случае, чтобы использовать переменную $all_search, определенную в файле global.php, в файле mainpage.php, вы можете сделать следующее:

1. Сохраните результат SQL-запроса в переменную $all_search в файле global.php:

```php
// global.php
$result = mysqli_query($conn, "SELECT * FROM table_name");
$all_search = mysqli_fetch_all($result, MYSQLI_ASSOC);
```

2. Используйте функцию require_once() в файле mainpage.php для подключения файла global.php и доступа к переменной $all_search:

```php
// mainpage.php
require_once('global.php');

// Теперь переменная $all_search доступна в этом файле
print_r($all_search); // Вывод найденных записей на печать
```

Таким образом, результат SQL-запроса, выполненного в файле global.php, будет доступен для использования в файле mainpage.php.
Предпологаю что речь идет о веб бакэнде - приложении, запускаемом на веб сервере по запросу из браузера. И главное, предполагаю что используется cgi подход, когда на каждый запрос из браузера запускается отдельный процесс php (даже если это модуль веб сервера, он конечно оптимизируется до асинхронных потоков) но содержимое памяти каждый раз пустое . 

Если у тебя mainpage.php и poisk.php это разные запросы, то через глобальные переменные данные между ними не передать.

Нужна какая-нибудь база данных, чем бы она не являлась, например:
* хранить в специальных заголовках запроса - cookies , эти данные как мяч будут автоматически передаваться между клиентом и сервером, т.е. все запросы от клиента будут содержать копию всех установленных cookies, до истечения их времени жизни
* переменные сессии (используются cookies автоматически)
сессия доступна сразу после session_start () а данные через ассоциативный массив $_SESSION (автоматически сохраняется по окончанию скрипта, учти это при параллельных запросах), идентификатор сессии автоматически поддерживается в заголовках запроса (сессия стартует когда пользователь открывает сайт, и единая для других окон, адже после перезапуска браузера, время жизни опция cookie_lifetime)
Очень часто идентификаторы сессии или специально созданное значение в ней используется как идентификатор для поиска данных в других местах (например БД)
* можно использовать файлы, в которых данные хранятся в сериализованном виде, в php штатно работает var_export/eval, serialize/unserialize, json_encode/json_decode - текстовые и бинарный igbinary_serialize /igbinary_unserialize (очень эффективный формат) или свой собственный, по желанию
* можно использовать базу данных, начиная с sqlite (размещается в файле но работа с помощью sql), настоятельно рекомендую PDO - универсальная прослойка для работы с реляционными БД
* есть еще всякие memcache, или к примеру самописный сервер данных (на сокетах и не только) но применимость - отдельный разговор

p.s. есть иной подход, когда на php пишется полноценный веб сервер, принимающий http запросы (его напрямую редко пускают в интернет, обычно ставят еще какой-нибудь nginx для поддержки ssl и других тонкостей), в этом случае php приложение скорее всего - один инстанс (один процесс), который не завершается по завершению запроса, обрабатывает запросы клиентов асинхронно, в этом случае глобальные переменные будут доступны между запросами.
Прочтите внимательно вот это. 
После этого вам должны стать очевидны ошибки в ваших рассуждениях.

Главный файл mainpage.php в котором использую объект XMLHttpRequest

Не в файле mainpage.php, а в браузере. Никакого РНР и тем более его переменных там нет.

мне нужно в файле mainpage.php повторно использовать результат запроса

Не в файле mainpage.php, а в браузере. Никакого РНР и тем более его переменных там нет.
А переменная яваскрипт с результатом запроса - есть. Вот её и используйте.

Один global.php, в котором описана переменная: global $all_search;.

А это, как я понимаю, просто бессмысленный файл, который можно смело удалить. Ну или только эту переменную, если там есть что-то ещё.
Похожие вопросы