Вывод данных из бд через функцию

153
17 марта 2018, 18:34

У меня есть отдельный файл с функциями functions.php в котором содержится следующая функция:

class func 
    public static function fillInfoAboutDeveloper($dbh){
        $query = "SELECT * FROM devpro.developers WHERE dev_status = 1";
        $stmt = $dbh->prepare($query);
        $stmt->execute();
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        return $row;
    }
}

где $dbh -передача переменной с подключением к бд. И есть главная страница, где происходит отрисовка данных. На данный момент я пытаюсь это выводить вот так:

    <?php    
    func::fillInfoAboutDeveloper($dbh);
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo 'Тут отрисовывается таблица';
    echo 'Какие-то данные'.$row["surname"];
    echo 'Опять какие-то данные'.$row["следующий столбец"];
    };
    ?>

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

Answer 1

Примерно так:

   class func 
        public static function fillInfoAboutDeveloper($dbh){
            $query = "SELECT * FROM devpro.developers WHERE dev_status = 1";
            $stmt = $dbh->prepare($query);
            $stmt->execute();
            return $stmt->fetchAll(PDO::FETCH_ASSOC);
        }
    }

Вторая часть

<?php    
  $developers = func::fillInfoAboutDeveloper($dbh);
  foreach($developers as $row) {
    echo 'Тут отрисовывается таблица';
    echo 'Какие-то данные'.$row["surname"];
    echo 'Опять какие-то данные'.$row["следующий столбец"];
  };
?>

Через while:

   class func 
        public static function fillInfoAboutDeveloper($dbh){
            $query = "SELECT * FROM devpro.developers WHERE dev_status = 1";
            $stmt = $dbh->prepare($query);
            $stmt->execute();
            return $stmt;
        }
    }

Вторая часть

<?php    
  $stmt = func::fillInfoAboutDeveloper($dbh);
  while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo 'Тут отрисовывается таблица';
    echo 'Какие-то данные'.$row["surname"];
    echo 'Опять какие-то данные'.$row["следующий столбец"];
  };
?>

Но здесь функция не возвращает полноценный результат запроса. А возвращает объект который еще в while обходиться, как на меня плохой вариант реализации

READ ALSO
Файловый менеджер на vue.js

Файловый менеджер на vue.js

У меня есть задание написать файловый менеджер на vuejs - frontend и на php - backend

184
Получить от DLL массив

Получить от DLL массив

Можете считать этот вопрос дубликатом другой моей темы Общий вектор между библиотекой и приложением, но проблема в нём не решена

212
std::optional, как вернуть значение из ф-ции

std::optional, как вернуть значение из ф-ции

В случае ошибки, я понимаю что можно вернуть std::nullopt, но при возврате конкретного значения, не компилируется, VS2017 ругается:

210