Почему не выводятся данные из БД?

Не могу понять, по какой причине не выводятся данные.
Вот код index.php
<?php
require_once('core/modules/template.php');
require_once('core/config.php');
require_once('core/database.php');
$TEMP = "templates/".$config['template']."/";
$STYLE = "templates/".$config['template']."/style";


$tpl->get_tpl($TEMP.'main.tpl');

//CONFIG
$tpl->set_value('TITLE', $config['site_name']);
$tpl->set_value('VK', $config['vk']);
$result = $db->query ("SELECT * FROM posts", MYSQLI_USE_RESULT);
while($row = $result->fetch_row()){
	$tpl->set_value('PUB_NUM', $row['id']);
}

//$
$tpl->set_value('CSS', $STYLE);
$tpl->set_value('TEMP', $TEMP);


$tpl->tpl_parse();
echo $tpl->html
?>


На странице сайта должно вывести ID поста, но ничего не выводится. Просто пустота
50472b6d1e8043ddb846c4674ec9ce40.PNG

Вот код шаблонизатора (не знаю, вдруг попросят, что бы не обновлять пост):
<?php

class template_class{
	var $values = array();
	var $hrml;
	
	function get_tpl($tpl_name){
		if(empty($tpl_name) || !file_exists($tpl_name)){
			echo "Шаблон <font color=red><b>$tpl_name</b></font> не найден!";
			return false;
		}else{
			$this->html = join('',file($tpl_name));
		}
	}
	
	function set_value($key,$var){
		$key = '{' . $key . '}';
		$this->values[$key] = $var;
	}
	
	function tpl_parse(){
		foreach($this->values as $find => $replace){
			$this->html = str_replace($find, $replace, $this->html);
		}
	}
}

$tpl = new template_class;
?>


Попросили main.tpl
<html>

<head>
<title>{TITLE}</title>
<link rel="stylesheet" href="{CSS}/style.css" />
</head>

<body>

<div class="header">
	<nav class="navbar">
		<ul>
			<li><a class="logo item" href="/">{TITLE}</a></li>
		</ul>
			<a href="{VK}" id="menu-signup-button" class="button button-login color color-vk" target="_blank"><i class="fa fa-vk"></i>Мой паблик ВКонтакте</a>
	</nav>
</div>

<section class="g-section">
	<div class="profile-head__wrap profile-with-cover" style="background-color: #7B8373; background-image: url(https://112902.selcdn.ru/virink/17/02/21/7d80dc6d872530ced90e5ba377ab8b53_cover.jpg);" ="">
		<div class="profile-head__wrap-cover" style="background-image: radial-gradient(farthest-side at 50% 100%, #7B8373 10%, transparent 100%);"></div>

	
	<div class="profile-head__user">
		<div class="profile-head__avatar avatar l-size">
			<a class="avatar-image" href="/" style="background-image: url(https://112902.selcdn.ru/virink/16/12/21/489ba35fa85e0ae5f5405a322d416997_pts.jpg)">
			</a>
					</div>
		<div class="profile-head__name ">
			<a class="profile-head__name_link pcd" href="/">Аракито Ким</a><a href="/star" class="fa fa-star"></a>
		</div>
				<div class="profile-follow-out">
					</div>

	<div class="menu-profile">
		<a class="menu-profile-item" href="/">
			<div class="menu-profile-item-title pcd">Публикации</div>
			<div class="menu-profile-item-count pcd">{PUB_NUM}</div>
		</a>
	</div>


	</div>
</div>
</section>

</body>

</html>


В чем может быть ошибка
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
iit
@iit
TeamLead + php/js разработчик
Эх, если бы еще и сам main.tpl дать =)
А так пока вижу 2-е небольшие проблемы, которые не относятся к теме, но все-же
1)
class template_class{
var $values = array();
var $hrml; // тут hrml а должно быть html
2)
Если бы этот код даже если бы и вывел пост - то только один
while($row = $result->fetch_row()){
$tpl->set_value('PUB_NUM', $row['id']);
}

А вообще лучше готовые шаблонизаторы использовать - тот же twig например
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Это волшебные функции, помести их себе на стену в код и они принесут тебе удачу понятие что у тебя происхолит
var_dump($tpl);
print_r($tpl);

ps: var $hrml;
В - внимание
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы