Доброй ночи, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 SX CMS / Техническая помощь
         Пустые поля при импорте

Похожие темы

Пустые поля при импорте


События Суббота, 18.04.2015, 19:05

lissnov

Группа: Пользователь
Ранг: Новичок
Cообщений: 74
Регистрация: 15.08.2014
При импорте товара, если значение поля спецификации не заполнено, соответственно в базе значение поля меняется с NULL на пустое поле, и соответственно при извелечении полей из столбца, извлекаются и поля без значений, и при выводе через foreach выводятся пустые строки. Помогите правильно написать код, чтоб пустые значения не выводились или подскажите как можно програмно менять пустое значение на NULL при импорте, где-то найти в классах
Привожу пример кода, который используется сейчас для выбора значения Spez_1:

/*
protected function getFiltername() {
$cid = intval(Arr::getRequest('cid'));
$db_cid = "(Kategorie = '" . $cid . "')";
$namefilter = $this->_db->cache_fetch_assoc("SELECT Spez_1 FROM " . PREFIX . "_shop_kategorie_spezifikation WHERE {$db_cid}");
return $namefilter;
*/
вывод значения в шаблоне:
/*
{foreach from=$filter_name item=namefilter}
{$smarty.request.namefilter == $namefilter}{$namefilter}
{/foreach}
*/
Помогите пожалуйста практически и советами, понимаю, что многого не знаю, но пытаюсь научиться.
Спасибо всем, кто отзовется.

Пользователь офлайн
События Воскресенье, 19.04.2015, 11:30

SX

Группа: Администратор
Cообщений: 3016
Регистрация: 23.10.2009
Не совсем понятно что хотите сделать.

Судя по запросу вы хотите вывести значение только одной строки, тогда не нужно применение foreach в шаблоне.
И не видно строки передачи в шаблон.

Если хотите не показывать строки с определенными значениями, то проще отграничить это в запросе, а не выводить и потом уже проверять на пустоту.

Сделаю простой пример, скорее это то что вам и надо
PHP-код
    protected function getFiltername() {
        
$cid intval(Arr::getRequest('cid'));
        
$namefilter $this->_db->cache_fetch_assoc("SELECT Spez_1 FROM " PREFIX "_shop_kategorie_spezifikation WHERE Kategorie = '" $cid "' LIMIT 1");
        return 
$namefilter;
    }
    
    
$this->_view->assign('namefilter'$this->getFiltername()); // Передача переменной в шаблоне
    
    
{$namefilter.Spez_1// Это в шаблоне значение полученное из базы


Но что то не так, получается только одно значение, а скорее всего вам нужны все значения для категории, так вернее должно быть

PHP-код
    protected function getFiltername() {
        
$cid intval(Arr::getRequest('cid'));
        
$namefilter $this->_db->cache_fetch_assoc("SELECT Spez_1 FROM " PREFIX "_shop_kategorie_spezifikation WHERE Kategorie = '" $cid "'");
        
$array = array();
        while (
$row $namefilter->fetch_object()) {
            
$array $row['Spez_1'];
        }
        
$result->close();
        return 
$array;
    }
    
    
$this->_view->assign('namefilter'$this->getFiltername());
    
    {foreach 
from=$namefilter item=row}
        {if 
$smarty.request.namefilter == $row.Spez_1}
        {
$row.Spez_1}
        {/if}
    {foreach}


Таким образом мы получаем все подмножество строк, что бы ограничить не нужные значения можно сделать гораничение в запросе по принципу
AND Spez_1 != NULL AND Spez_1 != ''
Хотя можно сделать проверку и в цикле while, что выше в примере, добавив проверку
PHP-код
        if (!empty($row['Spez_1'])) {
            
        }


Но правильней сделать проверку на равенство ключа namefilter из маасива request, в том же while, что в примере выше, и сразу получить массив нужных значений, а вернее одно судя по условию.

И в итоге озадачивает мысль, зачем вы делаете запрос в базу, получаете массив, передаете в шаблон, а потом условием отсекаете и получаете значение которое уже у вас есть в ограничивающем условии, а точнее вот оно $smarty.request.namefilter???


Пользователь офлайн
События Воскресенье, 19.04.2015, 23:01

lissnov

Автор текущей темы
Группа: Пользователь
Ранг: Новичок
Cообщений: 74
Регистрация: 15.08.2014
Огромное спасибо администратору за помощь. Во всем разобрался, всё получилось, очень помогли ваши примеры кода, а мысль которая Вас озадачивала объясняется моим плохим знанием програмирования, так как я самоучка, учусь на своих ошибках, форумах и примерах, особо подсказать некому, а желание научиться есть. Ваша система очень понравилась, но хотелось бы многое доработать, что я и пытаюсь сделать с переменным успехом. Еще вопрос не по теме, чтоб не открывать новую: как можно реализовать что бы можно было назначать альтернативный шаблон не каждому товару по отдельности, а сразу всей категории товаров. И можно ли реализовать показ просмотреных товаров в "карусели". Еще раз спасибо за помощь.
Пользователь офлайн


Похожие темы  |   Предыдущая тема  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте

Пользователей: 0, Гостей: 4

Поисковые боты: 125
Mail.Ru Bot(10), Bot(105), oBot(5), Googlebot(3), BingBot(2)
 Статистика форума

  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: wonad81290
 Дни рождения

maxter (42)
Copyright © 2009 - 2024 SX All rights reserved | Powered by SX CMS 1.06 UTF | Контакты