Функция для рандомных слайдов

248
31 октября 2017, 00:29

Нужно сделать вывод слайдера через функцию, с выводом изображений через бд по порядку/рандомно. Не знаю как реализовать, нужна помощь. Вот function.php:

    class Functions{ 
        public $db, $config;
        public function __construct($config){
            $this->config = $config;
            $this->db = new mysqli($config['db_host'], $config['db_user'], $config['db_pass'], $config['db_name']);
            if ($this->db->connect_error) {
                die("Couldn't connect to MySQL: ".$this->db->connect_error);
            }
            mysqli_query($this->db, "SET NAMES utf8");
        }
        public function getTemplate($name){
            $file = $_SERVER['DOCUMENT_ROOT']."/template/".$name.".tpl";
            if(!is_file($file)){
                return "Ошибка! Шаблон не найден!";
            }else{
                $template = file_get_contents($file);
                preg_match_all('/{include file="(.*?)"}/is', $template, $matches);
                foreach($matches[1] as $value) {
                    $template = str_replace('{include file="'.$value.'"}', $this->getTemplate(str_replace(".tpl", "", $value)), $template);
                }
                return $template;
            }
        }
        public function getIndex($template, $replace = ['from' => [], 'to' => []]){
            $template = $this->getTemplate($template);
            $replace['from'][] = "{title}";
            $replace['to'][] = $this->config['site_title'];
            if($this->isLogged()){
                $user = $this->getUser();
                $replace['from'][] = "{authBlock}";
                $replace['to'][] = '<div class="userblock">
                <a href="/user">
                <div class="userblock-avatar"><img src="'.$_SESSION['avatarfull'].'" alt="Аватар"></div>
                <a href="/user" class="userblock-name">'.$_SESSION['name'].'</a>
                </a>
                <div class="userblock-bottom">
                <a href="/pay" target="_blank">
                <div class="userblock-money price" id="balanceTXT">'.$user->money.' ₽</div>
                <div class="userblock-money-text">Пополнить</div>
                </a>
                </div>
                <a href="/steam?logout" class="userblock-quit">x</a>
                </div>';
            }else{
                $replace['from'][] = "{authBlock}";
                $replace['to'][] = '<a class="enter-steam" href="/steam?login">Войти через<br><span>Steam</span></a>';
                $replace['from'][] = "{logoutBlock}";
                $replace['to'][] = "/";
            }
            return str_replace($replace['from'], $replace['to'], $template);
        }

Как это выглядит в моей голове

public function getSlider($template, $replace = ['from' => [], 'to' => []]){
            $template = $this->getTemplate($template);
            $replace['from'][] = "{slider}";
            $replace['to'][] = - **здесь должно быть что-то вроде** 
   $slider = $this->query("SELECT * FROM slider WHERE picture='$picture' ORDER BY id");
      while($slide = $slider->fetch_object()){
        $slidePost .= '<div class="owl-carousel owl-theme">
        <div id="'.$slide->id.'"><a href="'.$slide['href'].'" target="_blank"><img src="slider/'.$slide->picture.'" alt="'.$slide->description.'"></a>
        </div>';
        }

Я не знаю как правильно записать вывод слайдов по порядку или рандомно из бд, чтобы он генерировал их в {slider}. Таблица slider состоит из id, picture(расположение слайда), href, description, name.

READ ALSO
Выбор уникальных из массива по ключу (наверное так назову)

Выбор уникальных из массива по ключу (наверное так назову)

У меня есть списокДолжны выводится все, НО до тех пор, пока не найдутся с одинаковым именем, как например Anna

207
Не подключается к сокет серверу

Не подключается к сокет серверу

Добрый вечерЗапускаю веб сокет сервер на компьютере и пытаюсь подключиться к нему через клиент

224
Почему может не работать Pjax?

Почему может не работать Pjax?

Пишу сайт на Yii2Захотел использовать Pjax

203
Laravel и Frontend? [требует правки]

Laravel и Frontend? [требует правки]

Всем привет! Мне нужно корректировать фронтенд на готовом проекте, написанном на ларавеле 54, есть ли у меня шансы работать с проектом, если...

220