Передача функции, которая должна отображать таблицу из базы данных с foreach l oop PHP - PullRequest
0 голосов
/ 08 января 2020

Я делаю обзор для пользователей, которые являются администраторами на моем сайте.

Проблема, с которой я столкнулся, заключается в том, что я понятия не имею, как передать функцию, такую ​​как я хочу. Я пытался искать, используя аргументы, но, похоже, ничего не решило бы мою проблему.

Код: у меня есть 3 сценария (+ таблица стилей), которые связаны друг с другом

adminUsers. php

<?php
session_start();
require_once ("../model/handler.php");
require_once ("../model/gui_mod.php");
echo("<link rel='stylesheet' type='text/css' href='../stylesheet/stylesheet.css'>");

$gui_obj = new class_gui();

$gui_obj->admin();
$gui_obj->adminUsers();

обработчик. php (на этой странице я устанавливаю соединение с базой данных с помощью var $ conn)

function admins(){
    ?>
    <table>
        <?php 
            $query = "SELECT * FROM admin";
            $stmt = $conn->prepare($query);
            $stmt->execute();
            $result = $stmt->fetchall();

            foreach($result as $row){
        ?>

        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>

        <?php 
            }
        ?>
    </table>
    <?php
}

gui_mod. php - Здесь я сделать Gui страницы

function adminUsers(){
        ?>
            <html>
                <body>

                    <div class="admin_container_head_bg">
                        <div class="admin_container_head_text_one">
                            <header>Administrator</header>
                        </div>
                        <div class="admin_container_head_text_two">
                            <p>Manager</p>
                        </div>
                    </div>
                    <div class="admin_users">
                        <div class="table_admins">

                            <?php admins(); ?>
                        </div>
                    </div>
                </body>
            </html>
        <?php
    }

У меня было ощущение, что проблема вызвана тем, что я запрашиваю функцию внутри другой функции. Но я, честно говоря, понятия не имею, поэтому, если это неверно, пожалуйста, скажите мне: #

1 Ответ

1 голос
/ 08 января 2020

Вы должны либо объявить объект соединения глобальным, либо передать его в функцию.

function admins() {
    global $conn;
    ...

Или:

function admins($conn) {
    ...
}

И затем вызвать, передав соединение, как:

admins($conn);

В противном случае это не входит в сферу применения. Имейте в виду, что вам придется объявить объект подключения глобальным из другой функции или передать его, чтобы затем вызвать из него admins, иначе вы столкнетесь с точно такой же проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...