помогите со вторым LEFT JOIN!!!

Статус
В этой теме нельзя размещать новые ответы.

fafee

Постоялец
Регистрация
3 Окт 2008
Сообщения
92
Реакции
0
есть запрос, который выводит все новости из таблицы NEWS по id, хотелось бы включить в этот запрос вывод количества комментариев к каждой новости, комментарии хранятся в таблице NEWSCOMMENTS. В запросе уже есть один LEFT JOIN, а как еще один вставить, я что-то не пойму:ah:

первый запрос

PHP:
     $sql = '
        SELECT 
        nw.`id_entry`, 
        nw.`date_add`, 
        nw.`id_employee`,
        nw.`status`,
        nwl.`link_rewrite`, 
        nwl.`meta_title`, 
        nwl.`description_short`
        FROM `' . _DB_PREFIX_ . 'news` nw
        LEFT JOIN `' . _DB_PREFIX_ . 'news_lang` nwl 
        ON (nw.`id_entry` = nwl.`id_entry`) 
        WHERE nwl.`id_lang` = ' . intval($cookie->id_lang) . ' 
        AND nwl.`meta_title` != ""
        AND nw.`status` = 1
        ORDER BY nw.`date_add` DESC';

второй

PHP:
$sql = '
SELECT COUNT(`id_entry_comment`) AS "nbr"
		FROM `'._DB_PREFIX_.'newscomments` pc
		WHERE `id_entry` = '.intval($entry_id)';
Спасибо.
 
Можно вообще без join
PHP:
 $sql = '
        SELECT 
			  nw.`id_entry`, 
			  nw.`date_add`, 
			  nw.`id_employee`,
			  nw.`status`,
			  nwl.`link_rewrite`, 
			  nwl.`meta_title`, 
			  nwl.`description_short`,
			  (SELECT COUNT(`id_entry_comment`) AS "nbr"
			  FROM `'._DB_PREFIX_.'newscomments` pc
			  WHERE pc.`id_entry` = nw.`id_entry`) cnt
		  FROM 
				`' . _DB_PREFIX_ . 'news` nw
        LEFT JOIN 
				`' . _DB_PREFIX_ . 'news_lang` nwl 
        ON 
			(nw.`id_entry` = nwl.`id_entry`) 
        WHERE 
			  nwl.`id_lang` = ' . intval($cookie->id_lang) . ' 
			  AND nwl.`meta_title` != ""
			  AND nw.`status` = 1
        ORDER BY 
				nw.`date_add` DESC';
Но если очень хочется, то можно и так
PHP:
$sql = '
        SELECT 
			  nw.`id_entry`, 
			  nw.`date_add`, 
			  nw.`id_employee`,
			  nw.`status`,
			  nwl.`link_rewrite`, 
			  nwl.`meta_title`, 
			  nwl.`description_short`,
			  pc.`nbr`
        FROM 
				`' . _DB_PREFIX_ . 'news` nw
        LEFT JOIN 
				`' . _DB_PREFIX_ . 'news_lang` nwl 
        ON 
				(nw.`id_entry` = nwl.`id_entry`) 
		  LEFT JOIN		
				(
					SELECT `id_entry`, COUNT(`id_entry_comment`) AS "nbr"
					FROM `'._DB_PREFIX_.'newscomments` pc
					GROUP BY `id_entry`
				) pc
		  ON
				pc.`id_entry` = nw.`id_entry`
        WHERE 
			  nwl.`id_lang` = ' . intval($cookie->id_lang) . ' 
			  AND nwl.`meta_title` != ""
			  AND nw.`status` = 1
        ORDER BY 
				nw.`date_add` DESC';
можно добавить фильтрацию здесь
PHP:
(
					SELECT `id_entry`, COUNT(`id_entry_comment`) AS "nbr"
					FROM `'._DB_PREFIX_.'newscomments` pc
WHERE что-то-тут-фильтруем
					GROUP BY `id_entry`
				) pc
чтоб не брать ненужное
 
Можно вообще без join

Здорово Вы в этом разбираетесь. Спасибо.
Попробовал первый и второй вариант, но почему-то в темплейте не выводится это злосчастное количество комментариев,
вот код функции, которая отвечает за это и часть темплейта,
выводится все, кроме {$entry.nbr}

PHP:
<?
public function getNews($p = false, $n = false)
    {
        global $cookie;
        $rewrite = intval(Configuration::get('PS_REWRITING_SETTINGS'));
        $tmpLink = _PS_BASE_URL_ . __PS_BASE_URI__;
         $sql = ' 
        SELECT  
              nw.`id_entry`,  
              nw.`date_add`,  
              nw.`id_employee`, 
              nw.`status`, 
              nwl.`link_rewrite`,  
              nwl.`meta_title`,  
              nwl.`description_short`, 
              pc.`nbr` 
        FROM  
                `' . _DB_PREFIX_ . 'news` nw 
        LEFT JOIN  
                `' . _DB_PREFIX_ . 'news_lang` nwl  
        ON  
                (nw.`id_entry` = nwl.`id_entry`)  
          LEFT JOIN         
                ( 
                    SELECT `id_entry`, COUNT(`id_entry_comment`) AS "nbr" 
                    FROM `'._DB_PREFIX_.'newscomments` pc 
                    GROUP BY `id_entry` 
                ) pc 
          ON 
                pc.`id_entry` = nw.`id_entry` 
        WHERE  
              nwl.`id_lang` = ' . intval($cookie->id_lang) . '  
              AND nwl.`meta_title` != "" 
              AND nw.`status` = 1 
        ORDER BY  
                nw.`date_add` DESC';  
		
        if($p AND $n) {
            $sql .= ' LIMIT ' . ((intval($p) - 1) * intval($n)) . ',' . intval($n);
        } elseif ($p) {
            $sql .= ' LIMIT ' . (intval($p));
        }
		


        $result = Db::getInstance()->ExecuteS($sql);
        $links = array();

        if ($result)
        {
            foreach ($result as $row) 
            {
                $row['link'] = self::getLink(array('entry' => array('id' => $row['id_entry'], 'rewrite' => $row['link_rewrite'])));
                $links[] = $row;
				
            }
            return $links;
			
        }

        return false;
    }
	
?>




<?
$newsClass = new News(Tools::getValue('id_entry', true));
$data = $newsClass->getNews($p, $n);
$smarty->assign(array(
        'nbNews'        => $nbProducts,
        'news'          => $data
    ));
?>

{foreach from=$news item=entry}
{$entry.id_entry}
{$entry.id_employee}
{$entry.link_rewrite}

//а вот и число комментариев
{$entry.nbr}

{/foreach}

Голову уже поломал, в чем дело....
 
Данные в таблицах точно есть нужные?
Во втором запросе в случае отсутсвия комментариев к новости будет выбран NULL и smarty его не отобразить.
В первом запросе в любом случае будет число, только внимательно посмотрите, там поле называется cnt, а не nbr, так что надо написать {$entry.cnt}
 
Данные в таблицах точно есть нужные?
Во втором запросе в случае отсутсвия комментариев к новости будет выбран NULL и smarty его не отобразить.
В первом запросе в любом случае будет число, только внимательно посмотрите, там поле называется cnt, а не nbr, так что надо написать {$entry.cnt}
данные есть, но даже в первом случае не выводит ничего

на всякий случай привожу скрины таблиц
NEWS
news.gif

NEWSCOMMENTS
newscomment.gif


и полный листинг файлов

класс News.php

PHP:
<?php
class News extends ObjectModel
{
	public $meta_title;
	public $meta_description;
	public $meta_keywords;
	public $description_short;
	public $content;
	public $link_rewrite;
    public $status = true;
    public $date_add;
	public $count_num;
    public $date_upd;
    public $id_employee;
    public $id_category_default;

 	protected $fieldsRequiredLang = array(
 	    'meta_title', 
 	    'link_rewrite'
 	);
 	
	protected $fieldsSizeLang = array(
	    'meta_description'  => 255, 
	    'meta_keywords'     => 255, 
	    'meta_title'        => 128, 
	    'link_rewrite'      => 128, 
	    'description_short' => 65536, 
		'count_num'           => 128,
	    'content'           => 65536
	);
	
	protected $fieldsValidate = array(
	    'id_employee'   => 'isInt', 
	    'status'        => 'isBool'
	);
	
	protected $fieldsValidateLang = array(
	    'meta_description'  => 'isGenericName', 
	    'meta_keywords'     => 'isGenericName', 
	    'meta_title'        => 'isGenericName', 
	    'link_rewrite'      => 'isLinkRewrite', 
	    'description_short' => 'isCleanHTML', 
		'count_num'         => 'isCleanHTML', 
	    'content'           => 'isCleanHTML'
	);

	protected $table = 'news';
	protected $identifier = 'id_entry';
	
	public function getFields() { 
	    global $cookie;
	    parent::validateFields();
		$fields['id_employee'] = intval($cookie->id_employee);
		$fields['status'] = intval($this->status);
		$fields['date_add'] = pSQL($this->date_add);
		//$fields['count_num'] = pSQL($this->id);
		$fields['date_upd'] = pSQL($this->date_upd);
		
		if(Module::isInstalled('newscategoriesmod')) {
		    $fields['id_category_default'] = intval($this->id_category_default);
		}
		
		return $fields; 
	}
	
	public function getTranslationsFieldsChild()
	{
		parent::validateFieldsLang();

		$fieldsArray = array('meta_title', 'meta_description', 'meta_keywords', 'link_rewrite');
		$fields = array();
		$languages = Language::getLanguages();
		$defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
		foreach ($languages as $language)
		{
			$fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
			$fields[$language['id_lang']][$this->identifier] = intval($this->id);
			$fields[$language['id_lang']]['description_short'] = (isset($this->description_short[$language['id_lang']])) ? Tools::htmlentitiesDecodeUTF8(pSQL($this->description_short[$language['id_lang']], true)) : '';
			$fields[$language['id_lang']]['content'] = (isset($this->content[$language['id_lang']])) ? Tools::htmlentitiesDecodeUTF8(pSQL($this->content[$language['id_lang']], true)) : '';
			foreach ($fieldsArray as $field)
			{
				if (!Validate::isTableOrIdentifier($field))
					die(Tools::displayError());
				if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
					$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
				elseif (in_array($field, $this->fieldsRequiredLang))
					$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
				else
					$fields[$language['id_lang']][$field] = '';
			}
		}
		return $fields;
	}
	
	public function add($autodate = true, $nullValues = false) { 
	    if(parent::add($autodate, true)) {
	        if(Module::isInstalled('newscategoriesmod')) {
                $_POST['id_category'][] = $_POST['id_category_default'];
                $_POST['id_category'] = array_unique($_POST['id_category']);
                foreach($_POST['id_category'] as $category_id) {
                    $sql = '
                        INSERT INTO `' . _DB_PREFIX_ . 'newstocategories` VALUES (
                        ' . intval($category_id) . ',
                        ' . $this->id . ')';
                    
                    if(!Db::getInstance()->Execute($sql)) {
                        return false;
                    }
                }
	        }
	        
	        return true;
	    }
	    return false;
	}
	
	public function delete()
	{
	    if(parent::delete()) {
	        $sql = '
	        DELETE FROM `' . _DB_PREFIX . 'newscomments` 
	        WHERE `id_entry` = ' . $this->id;
	        if(Db::getInstance()->Execute($sql)) {
	            return true;
	        }
	    }
	    return false;
	}
	
	public function toggleStatus()
	{
	 	if (!Validate::isTableOrIdentifier($this->identifier) OR !Validate::isTableOrIdentifier($this->table)) {
	 		die(Tools::displayError());
	    } elseif (!key_exists('status', $this)) {
	 		die(Tools::displayError());
	 	}
		return Db::getInstance()->Execute('
		UPDATE `'.pSQL(_DB_PREFIX_.$this->table).'`
		SET `status` = !`status`
		WHERE `'.pSQL($this->identifier).'` = '.intval($this->id));
	}
	
	public function update($nullValues = false)
	{
	 	if(parent::update($nullValues)) {
	        if(Module::isInstalled('newscategoriesmod')) {
                $sql = '
                DELETE FROM `' . _DB_PREFIX_ . 'newstocategories` 
                WHERE `id_entry` = ' . intval($this->id);
                
                if(!Db::getInstance()->Execute($sql)) {
                    return false;
                }

                $_POST['id_category'][] = $_POST['id_category_default'];
                $_POST['id_category'] = array_unique($_POST['id_category']);
                
                foreach($_POST['id_category'] as $category_id) {
                    $sql = '
                    INSERT INTO `' . _DB_PREFIX_ . 'newstocategories` VALUES (
                    ' . intval($category_id) . ',
                    ' . $this->id . ')';

                    if(!Db::getInstance()->Execute($sql)) {
                        return false;
                    }
                }
	        }
	        
	        return true;
	    }
	    return false;
	}
	
    public function getEntryPreview($id_lang, $entry_id, $category_id = null)
    {
        if(!Validate::isUnsignedInt($entry_id) 
            OR !Validate::isUnsignedInt($id_lang) 
            OR ($category_id AND !Validate::isUnsignedInt($category_id))) {
            return false;
        }
        
        if($category_id) {
            $sql = '
            SELECT nw. * , nwl. * , ncl.`meta_title` AS  `category_name` , ncl.`link_rewrite` AS  `category_link` 
            FROM  `' . _DB_PREFIX_ . 'newstocategories` ntc
            LEFT JOIN  `' . _DB_PREFIX_ . 'news` nw ON ( nw.`id_entry` = ntc.`id_entry` ) 
            LEFT JOIN  `' . _DB_PREFIX_ . 'news_lang` nwl ON ( nw.`id_entry` = nwl.`id_entry` ) 
            LEFT JOIN  `' . _DB_PREFIX_ . 'newscategories` nc ON ( nc.`id_category` = ntc.`id_category` ) 
            LEFT JOIN  `' . _DB_PREFIX_ . 'newscategories_lang` ncl ON ( nc.`id_category` = ncl.`id_category` ) 
            WHERE ntc.`id_category` = ' . intval($category_id) . '
            AND nc.`status` = 1
            AND nw.`status` = 1
            AND nw.`id_entry` = ' . intval($entry_id) . '
            AND nwl.`id_lang` = ' . intval($id_lang) . '
            AND ncl.`id_lang` = ' . intval($id_lang);
        } else {
            $sql = '
            SELECT 
            nw.*, nwl.* 
            FROM `' . _DB_PREFIX_ . 'news` nw
            LEFT JOIN `' . _DB_PREFIX_ . 'news_lang` nwl 
            ON (nw.`id_entry` = nwl.`id_entry`) 
            WHERE nw.`id_entry` = ' . intval($entry_id) . ' 
            AND nw.`status` = 1
            AND nwl.`id_lang` = ' . intval($id_lang);
        }

        return Db::getInstance()->getRow($sql);
    }

	
	public function getEntryById($category_id = null)
    {
        global $cookie;
        if(!$this->id OR ($category_id AND !Validate::isUnsignedId($category_id))) {
            return false;
        }
        
        if($category_id) {
            $sql = '
            SELECT nw. * , nwl. * , ncl.`meta_title` AS  `category_name` , ncl.`link_rewrite` AS  `category_link` 
            FROM  `' . _DB_PREFIX_ . 'newstocategories` ntc
            LEFT JOIN  `' . _DB_PREFIX_ . 'news` nw ON ( nw.`id_entry` = ntc.`id_entry` ) 
            LEFT JOIN  `' . _DB_PREFIX_ . 'news_lang` nwl ON ( nw.`id_entry` = nwl.`id_entry` ) 
            LEFT JOIN  `' . _DB_PREFIX_ . 'newscategories` nc ON ( nc.`id_category` = ntc.`id_category` ) 
            LEFT JOIN  `' . _DB_PREFIX_ . 'newscategories_lang` ncl ON ( nc.`id_category` = ncl.`id_category` ) 
            WHERE ntc.`id_category` = ' . intval($category_id) . '
            AND nc.`status` = 1
            AND nw.`status` = 1
            AND nw.`id_entry` = ' . $this->id . '
            AND nwl.`id_lang` = ' . intval($cookie->id_lang) . '
            AND ncl.`id_lang` = ' . intval($cookie->id_lang);
        } else {
            $sql = '
            SELECT 
            nw.*, nwl.* 
            FROM `' . _DB_PREFIX_ . 'news` nw
            LEFT JOIN `' . _DB_PREFIX_ . 'news_lang` nwl 
            ON (nw.`id_entry` = nwl.`id_entry`) 
            WHERE nw.`id_entry` = ' . $this->id . ' 
            AND nw.`status` = 1
            AND nwl.`id_lang` = ' . intval($cookie->id_lang);
        }

        return Db::getInstance()->getRow($sql);
    }
    
    static public function getLink($params)
	{
	    $link = false;
	    $template = array('blog', 'entry', 'category');
	    $tmpLink = _PS_BASE_URL_ . __PS_BASE_URI__;
	    $rewrite = intval(Configuration::get('PS_REWRITING_SETTINGS')) == 1 ? true : false;
	    if(isset($params['category'])) {
	        if(!isset($params['entry'])) {
	            $link = $tmpLink . ($rewrite ? $template[0] . '/' . $template[2] . '/' . $params['category']['id'] . '-' . $params['category']['rewrite'] . '.html' : 'modules/newscore/news.php?category_id=' . $params['category']['id']);
	        } else {
	            $link = $tmpLink . ($rewrite ? $template[0] . '/' . $template[2] . '/' . $params['category']['id'] . '-' . $params['category']['rewrite'] . '/' . $template[1] . '/' . $params['entry']['id'] . '-' . $params['entry']['rewrite'] . '.html' : 'modules/newscore/news.php?category_id=' . $params['category']['id'] . '&id_entry=' . $params['entry']['id']);
	        }
	    } elseif(isset($params['entry'])) {
	        $link = $tmpLink . ($rewrite ? $template[0] . '/' . $template[1] . '/' . $params['entry']['id'] . '-' . $params['entry']['rewrite'] . '.html' : 'modules/newscore/news.php?id_entry=' . $params['entry']['id']);
	    }
	    return $link;
	}
    
	
	/*
	static public function getCommentNumber($id_entry)
	{
		if (!Validate::isInt($id_entry)) {
		die(Tools::displayError());
		}
		$validate = intval(Configuration::get('NEWSCOMMENTS_ADGROUP'));
		if (($result = Db::getInstance()->getRow('
		SELECT COUNT(`id_entry_comment`) AS "nbr"
		FROM `'._DB_PREFIX_.'newscomments` pc
		WHERE `id_entry` = '.intval($entry_id).($validate == '1' ? ' AND `validate` = 1' : ''))) === false)
			return false;
		return intval($result['nbr']);
	}*/
	
	
    public function getNews($p = false, $n = false)
    {
        global $cookie;
        $rewrite = intval(Configuration::get('PS_REWRITING_SETTINGS'));
        $tmpLink = _PS_BASE_URL_ . __PS_BASE_URI__;
         $sql = ' 
        SELECT  
              nw.`id_entry`,  
              nw.`date_add`,  
              nw.`id_employee`, 
              nw.`status`, 
              nwl.`link_rewrite`,  
              nwl.`meta_title`,  
              nwl.`description_short`, 
              (SELECT COUNT(`id_entry_comment`) AS "nbr" 
              FROM `'._DB_PREFIX_.'newscomments` pc 
              WHERE pc.`id_entry` = nw.`id_entry`) cnt 
          FROM  
                `' . _DB_PREFIX_ . 'news` nw 
        LEFT JOIN  
                `' . _DB_PREFIX_ . 'news_lang` nwl  
        ON  
            (nw.`id_entry` = nwl.`id_entry`)  
        WHERE  
              nwl.`id_lang` = ' . intval($cookie->id_lang) . '  
              AND nwl.`meta_title` != "" 
              AND nw.`status` = 1 
        ORDER BY  
                nw.`date_add` DESC';  
				
        if($p AND $n) {
            $sql .= ' LIMIT ' . ((intval($p) - 1) * intval($n)) . ',' . intval($n);
        } elseif ($p) {
            $sql .= ' LIMIT ' . (intval($p));
        }
		


        $result = Db::getInstance()->ExecuteS($sql);
        $links = array();

        if ($result)
        {
            foreach ($result as $row) 
            {
                $row['link'] = self::getLink(array('entry' => array('id' => $row['id_entry'], 'rewrite' => $row['link_rewrite'])));
                $links[] = $row;
				
            }
            return $links;
			
        }

        return false;
    }
	
}

?>

news.php

PHP:
<?php
include(dirname(__FILE__) . '/../../config/config.inc.php');
include(dirname(__FILE__) . '/../../init.php');
include_once(dirname(__FILE__) . '/meta.php');


$css_files = array(
	__PS_BASE_URI__ . 'modules/newscore/blog.css' => 'screen'
);

include(dirname(__FILE__) . '/../../header.php');

global $errors;
$warning = false;

include_once(dirname(__FILE__) . '/classes/News.php');
$newsClass = new News(Tools::getValue('id_entry', true));

if (Module::isInstalled('newscategoriesmod')) {
    $pathToCatModule    = dirname(__FILE__) . '/../newscategoriesmod/';
    $categoriesEnabled  = true;
    
    include_once($pathToCatModule . '/classes/NewsCategories.php');
    
    $newsCategories     = new NewsCategories(Tools::getValue('category_id', false));
    $categoryNames      = $newsCategories->getCategoryNames();
}

$moduleLink = intval(Configuration::get('PS_REWRITING_SETTINGS')) == 1 ? _PS_BASE_URL_ . __PS_BASE_URI__ . 'blog/' : _PS_BASE_URL_ . __PS_BASE_URI__ . 'modules/newscore/news.php';

if (Tools::getIsset('id_entry')) {
    $category_id = Tools::getValue('category_id', false);
    if(!$newsCategories->id AND $categoriesEnabled) {
        $newsCategories->id = $newsCategories->selectEntriesDefaultCategory(Tools::getValue('id_entry'));
    }

    $templatePath = dirname(__FILE__) . '/';
    $template = 'news-entry';

    if (!$data = $newsClass->getEntryById($newsCategories->id)) {
        $errors[] = Tools::displayError('The requested page doen\'t exist');
    }

    $smarty->assign(array(
        'entry' => $data,
        'categoryName' => $newsCategories->id ? $data['category_name'] : null,
        'categoryLink' => ($newsCategories->id AND intval(Configuration::get('PS_REWRITING_SETTINGS')) == 1) ? $moduleLink . 'category/' . $newsCategories->id . '-' . $data['category_link'] . '.html' : $moduleLink . '?category_id=' . intval($newsCategories->id),
        'HOOK_NEWS_FOOTER_CONTENT' => Module::hookExec('newsFooter')
    ));
} else {
    if ($categoriesEnabled && $newsCategories->id) {
        $templatePath = dirname(__FILE__) . '/';
        $template = 'news-list';
        if(!$newsCategories->checkIfCategoryIsActive() OR !$data = $newsCategories->getNews()) {
            $warning = Tools::displayError('The requested category doesn\'t exist or empty');
        }
    } elseif ($categoriesEnabled && !$newsCategories->id) {
        $templatePath = $pathToCatModule;
        $template = 'category-list';
        $data = $newsCategories->getCategories();
    } else {
        $templatePath = dirname(__FILE__) . '/';
        $template = 'news-list';
        if(!$data = $newsClass->getNews()) {
            $warning = Tools::displayError('No news yet');
        }
    }

    $nbProducts = sizeof($data);
    include(dirname(__FILE__).'/../../pagination.php');

    if ($categoriesEnabled && $newsCategories->id) {
        $data = $newsCategories->getNews($p, $n);
    } elseif ($categoriesEnabled && !$newsCategories->id) {
        $data = $newsCategories->getCategories($p, $n);
    } else {
        $data = $newsClass->getNews($p, $n);
    }
	       
		
	
    $smarty->assign(array(
        'pages_nb'      => ceil($nbProducts / intval($n)),
        'warning'       => $warning ? $warning : null,
        'nbNews'        => $nbProducts,
        'news'          => $data,
        'categoryName'  => $categoriesEnabled ? $newsCategories->getCurrentCategoryName() : null
    ));
}
$smarty->assign('newsLink', $moduleLink);
$smarty->assign('errors', $errors);
$smarty->display($templatePath . $template . '.tpl');
include(dirname(__FILE__) . '/../../footer.php');
?>

и шаблон для вывода всех новостей для категории news-list.tpl

HTML:
{if $categoryName}
{capture name=path}<a href="{$newsLink}">{l s='News' mod='newscore'}</a><span class="navigation-pipe">{$navigationPipe}</span>{$categoryName}{/capture}
{else}
{capture name=path}{l s='News' mod='newscore'}{/capture}
{/if}
<div style="margin:0px 0px 0px -50px">

<div id="news" class="newsEntries">
	<h2 class="none"><br></h2>
	{if isset($errors) AND $errors}
		{include file=$tpl_dir./errors.tpl}
	{elseif $warning}
	<p class="warning">{$warning}</p>
	{else}
		{if $nbNews > 0}
		<ul class="entriesList">
		{foreach from=$news item=entry}
			<li style="margin:50px 0px 100px 0px!important">

                    {assign var='time' value=$entry.date_add|date_format:"%d %B в %H:%M"} 				
               <font style="color:#888888; font-family:Georgia!important; font-style:italic">{$time|replace:'January':'января'|replace:'February':'февраля'|replace:'March':'марта'|replace:'April':'апреля'|replace:'May':'мая'|replace:'June':'июня'|replace:'July':'июля'|replace:'August':'августа'|replace:'September':'сентября'|replace:'October':'октября'|replace:'November':'ноября'|replace:'December':'декабря'}</font>

            	<h3 style="font-size:1.0em;margin:15px 10px">
					<a href="{$entry.link}" title="{$entry.meta_title|escape:html:'UTF-8'}" style="text-decoration:none;font-weight:bold;letter-spacing:0.1em; font-family:Verdana">{$entry.meta_title|escape:html:'UTF-8'}</a> </h3>
                
					
				<div style="margin:25px 0px 10px 30px;color:black; line-height:130%;">
				{$entry.description_short}</div>
				<div style="margin:30px 0px 30px 0px;padding-right:60px"><a class="readMore" href="{$entry.link}">( Читать дальше )</a></div>
                комментариев: {$entry.cnt}
                
			</li>
		{/foreach}
		</ul>
	
		{/if}
	{/if}
</div>
</div>

Извиняюсь за дотошность...
 
Установи прогу SQL Manager for MySQL, подключись к базе и отошли запрос. Посмотришь, что за данные выводятся, и идет ли вывод вообще.
Чем приводить скриншоты, лучше бы приатачил дамп таблиц
 
Установи прогу SQL Manager for MySQL, подключись к базе и отошли запрос. Посмотришь, что за данные выводятся, и идет ли вывод вообще.
Чем приводить скриншоты, лучше бы приатачил дамп таблиц
данные выводятся все, которые собираются функцией getnews, все кроме кол-ва комментариев. Дампы вот

PHP:
-- --------------------------------------------------------

--
-- Структура таблицы `ti_news`
--

CREATE TABLE IF NOT EXISTS `ti_news` (
  `id_entry` int(10) unsigned NOT NULL auto_increment,
  `id_category_default` int(10) NOT NULL default '1',
  `id_employee` int(10) unsigned NOT NULL,
  `status` tinyint(1) unsigned NOT NULL default '0',
  `date_add` datetime NOT NULL,
  `date_upd` datetime NOT NULL,
  PRIMARY KEY  (`id_entry`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

--
-- Дамп данных таблицы `ti_news`
--

INSERT INTO `ti_news` (`id_entry`, `id_category_default`, `id_employee`, `status`, `date_add`, `date_upd`) VALUES
(1, 1, 1, 1, '2010-05-16 12:16:17', '2010-05-18 20:51:40'),
(2, 1, 1, 1, '2010-05-16 13:41:21', '2010-05-18 21:11:20'),
(3, 1, 1, 1, '2010-05-16 13:42:52', '2010-05-18 21:11:50');

-- --------------------------------------------------------

--
-- Структура таблицы `ti_newscomments`
--

CREATE TABLE IF NOT EXISTS `ti_newscomments` (
  `id_entry_comment` int(10) unsigned NOT NULL auto_increment,
  `id_entry` int(10) unsigned NOT NULL,
  `id_parent` int(10) unsigned NOT NULL,
  `username` varchar(32) NOT NULL,
  `email` varchar(128) NOT NULL,
  `id_customer` int(10) unsigned NOT NULL,
  `content` text NOT NULL,
  `validate` tinyint(1) NOT NULL,
  `date_add` datetime NOT NULL,
  PRIMARY KEY  (`id_entry_comment`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;

--
-- Дамп данных таблицы `ti_newscomments`
--

INSERT INTO `ti_newscomments` (`id_entry_comment`, `id_entry`, `id_parent`, `username`, `email`, `id_customer`, `content`, `validate`, `date_add`) VALUES
(1, 1, 0, 's', 'de@ff.ru', 0, 'jfkajka', 1, '2010-05-17 20:50:14'),
(2, 3, 0, 'Олег', 'd@d.ru', 0, '12345', 1, '2010-05-19 18:41:38'),
(14, 3, 12, '34', 'drumnbi@mail.ru', 0, 'ffffffffffffff', 1, '2010-05-20 00:09:24'),
(15, 3, 2, 'аааа', 'fd@rrr.r', 0, 'ffffffffffffffff', 1, '2010-05-20 12:31:52'),
(16, 3, 0, 'fr', 're@dd.e', 0, 'dssssssssss', 1, '2010-05-20 15:58:10'),
(17, 2, 0, 'Анечка', 'aa@bb.cc', 0, 'ну не знаю, а че прикольно штоли?', 1, '2010-05-22 20:38:51'),
(12, 3, 0, 'Hohg', 'ff@ff.rr', 0, '!!!!!!!!!!!', 0, '2010-05-20 00:06:12'),
(18, 2, 17, 'Джон', 'dd@dd.ru', 0, 'ну типо да!', 1, '2010-05-22 20:47:53');
 
Вроде как все должно работать, попробуйте удалить скомпилированные теплейты смарти из папки templatecache, или как у Вас в настройках указано.
 
Вроде как все должно работать, попробуйте удалить скомпилированные теплейты смарти из папки templatecache, или как у Вас в настройках указано.
удалил, не помогло.
но все равно спасибо.
 
А что в таблице news_lang? Вроде она тоже как бы нужна.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху