Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как вывести свои данные с базы


kagan

Recommended Posts

Добрый вечер! Подскажите пожалуйста как сделать вывод своих данных с БД в шаблон.

Хочу вывести с таблицы "product_special" значение "date_start" и отобразить его в категориях к каждому товару(свое у каждого).

Для этого делаю вывод переменной 

<?php echo $special_date_end;?>

в файле www\catalog\view\theme\default\template\product\category.tpl

 

Создаю метод для вызова данных из БД в модель (www\catalog\model\catalog\category.php). 

public function getSpecialPriceEndDate($product_id) {
	if ($this->customer->isLogged()) {
		$customer_group_id = $this->customer->getCustomerGroupId();
	} else {
		$customer_group_id = $this->config->get('config_customer_group_id');
	}
	$query = $this->db->query("SELECT price, date_start, date_end FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id . "' AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");

	if ($query->num_rows) {
		return array(
			'special'    => $query->row['price'],
			'date_end'   => $query->row['date_end'],
		);
	} else {
		return false;
	}
}	

Получаю данные с модели в контроллер

if ((float)$result['special']) {
	$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));

	$special_info = $this->model_catalog_category->getSpecialPriceEndDate($product_id);
	
	if ($special_info) {
		$this->data['special_date_end'] = $special_info['date_end'];
	} else {
		$this->date['special_date_end'] = false;
	}
} else {
	$special = false;
}	

В итоге пишет не определена функция "Notice: Undefined variable: special_date_end".

Надіслати
Поділитися на інших сайтах

} else {
        $this->date['special_date_end'] = false;
    }
} else {
    $special = false;

    $this->date['special_date_end'] = false;     <------ !!!!!
}    

Надіслати
Поділитися на інших сайтах

} else {

        $this->date['special_date_end'] = false;

    }

} else {

    $special = false;

    $this->date['special_date_end'] = false;     <------ !!!!!

}    

 

Не помогло. Да и не вижу смысла этого.

 

Немного подумав, дошел о этого(в этой части я уверен):

catalog\controller\product\category.php

foreach ($results as $result) {
....
if ((float)$result['special']) {
	$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));

	$special_info = $this->model_catalog_category->getSpecialPriceEndDate($result['product_id']);

	if ($special_info) {
		$this->data['products']['special_date_start'] = $special_info['date_start'];
		$this->data['products']['special_date_end'] = $special_info['date_end'];
	} else {
		$this->data['products']['special_date_start'] = false;
		$this->data['products']['special_date_end'] = false;
	}

} else {
	$special = false;
}	
....
}

Описываю метод "getSpecialPriceEndDate" в модели "model_catalog_category" так:

public function getSpecialPriceEndDate($product_id) {

$query = $this->db->query("SELECT price, date_start, date_end FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");

	if ($query->num_rows) {
		return array(
			'special'    => $query->row['price'],
			'date_start' => $query->row['date_start'],
			'date_end'   => $query->row['date_end'],
		);
	} else {
		return false;
	}
}

В итоге получаю Notice: Undefined variable: special_date_end in ..catalog\view\theme\default\template\product\category.tpl

Надіслати
Поділитися на інших сайтах

Может я не правильно делаю вывод data['products']['special_date_start'] в массив товаров?

$this->data['products'][] = array(
	'product_id'  => $result['product_id'],
	'thumb'       => $image,
	'name'        => $result['name'],
	'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..',
	'price'       => $price,
	'special'     => $special,
	'tax'         => $tax,
	'rating'      => $result['rating'],
	'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
	'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
);
Надіслати
Поділитися на інших сайтах

Не помогло. Да и не вижу смысла этого.

 

Немного подумав, дошел о этого(в этой части я уверен):

catalog\controller\product\category.php

foreach ($results as $result) {
....

В итоге получаю Notice: Undefined variable: special_date_end in ..catalog\view\theme\default\template\product\category.tpl

если не произошло входа в этот цикл, то переменная осталась неопределенной.

Определите ее до цикла.

Надіслати
Поділитися на інших сайтах

если не произошло входа в этот цикл, то переменная осталась неопределенной.

Определите ее до цикла.

 

Как это если все товары выводит? 

Можете пожалуйста объяснить по-подробнее.

Надіслати
Поділитися на інших сайтах

В итоге получаю Notice: Undefined variable: special_date_end in ..catalog\view\theme\default\template\product\category.tpl

пришлите мне весь файл. по обрывкам кода тяжело понять где и чего не хватает

Надіслати
Поділитися на інших сайтах

Спасибо за отклик, надеюсь у Вас получится разобраться. Файлы для изменения

Система Google по проверке безопасности сайтов недавно обнаружила на rghost.ruвредоносное ПО. Его источником является rghost.ru, не раз замеченным в распространении вирусов. 

так что в виде архива пожалуйста или я умываю руки

Надіслати
Поділитися на інших сайтах

Система Google по проверке безопасности сайтов недавно обнаружила на rghost.ruвредоносное ПО. Его источником является rghost.ru, не раз замеченным в распространении вирусов. 

так что в виде архива пожалуйста или я умываю руки

 

Ок, вот на Я.диск.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.