Ваш function.php
прямо сейчас отвечает за запуск сеанса, определяет переменные соединения MySQL, а также содержит класс, отвечающий за соединение с MySQL.
Вы не хотите этого делать, а придерживаетесь принципа, называемого Разделение интересов ( нажмите здесь ).
В не - ajax Кстати, так как теперь это в вашем index.php
, вы включаете файл function.php
, вы создаете экземпляр своего класса и вызываете функцию, которая возвращает результаты из базы данных, а затем перебирает их.
Если вы хотите, чтобы ваш топор ios ajax вызывал эти результаты, вам нужно вызвать файл, который фактически доставляет эти результаты.
Что вы можете сделать, это, скажем, создать новый файл, скажем, show_users.php
и вставьте что-то вроде этого:
<?php
require_once'function.php';
$show_users=new DB_con();
$sql1=$show_users->show_users();
$usersArray = mysqli_fetch_assoc($sql1);
header('Content-type: application/json');
echo json_encode($usersArray);
?>
Затем убедитесь, что вы изменили свой топор ios колл с axios.get("function.php")
на axios.get("show_users.php")
.
Хотя у меня есть скажем, делать все это вручную в PHP - это много ненужной работы. Вам было бы легче и безопаснее выбрать платформу, которая выполняет большую часть работы за вас, например, Laravel
Редактировать:
У вас очень запутанные названия. Например, у вас есть класс «DB_con», который, кстати, должен называться «DBCon». Я бы даже назвал это DBConnection, чтобы сделать его цель более очевидной. См. PSR-1 для общепринятых стандартов стиля кодирования.
У вас есть переменная с именем $show_users
, которая создает экземпляр вашего класса DB_con
, так что то, что содержит переменная, на самом деле является экземпляром DB_con
. Это не имеет ничего общего с функцией show_users
. Вот почему он также выглядит очень странно, чтобы увидеть позже $show_users->show_users()
. Было бы более разумно назвать объект подключения, например, $connection
, сделав его $connection = new DB_con();
.
Далее вы называете свой запрос $sql1
, хотя это НЕ SQL. SQL является языком запросов, и переменная с именем $sql
должна содержать строку. На самом деле функция возвращает mysqli_result . И этот результат содержит пользовательские данные. Назовите его, например, $usersResult
или $usersMysqliResult
или что-то подобное. Тогда ваш код станет намного проще для понимания, сделав его
$connection = new DB_con();
$usersMysqlResult = $connection->show_users();
$usersArray = mysqli_fetch_assoc($usersMysqlResult);
...