Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать вывод количества новостей с дополнительным полем?

Как сделать вывод количества новостей с дополнительным полем?


     26.04.2020    Общие вопросы по PHP, Модули, Хаки    1046

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

Сейчас выводится:
Значение доп. поля 1
Значение доп. поля 2
Значение доп. поля 3

Нужно:
Значение доп. поля 1 (17 новостей)
Значение доп. поля 2 (6 новостей)
Значение доп. поля 3 (25 новостей)

Сам скрипт:
<?php

if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }

$xflist = dle_cache( $xfname, $config['skin'] );
if(!$xflist) {
	$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE approve=1" );
	while ( $rows = $db->get_row( $sql_result ) ) {
		$xfields[] = $rows;
	}	
	$stack = array();
	foreach($xfields as $value){
		if($value[xfields]){
			$row = xfieldsdataload($value[xfields]);
			if($row[$xfname]){
				$rowdata = explode( ",", $row[$xfname]);
				foreach($rowdata as $value){
					if($value){
						$value = trim($value);
						array_unshift($stack, $value);
					}
				}
			}
		}
	}
	$stack = array_unique($stack);
	sort ($stack);	
	foreach( $stack as $value ){
		$xflist .= "<li><a href='/xfsearch/" . $xfname . "/" . $value . "/'>" . $value . "</a></li>\n";
	}
	create_cache( $xfname, $xflist, $config['skin'] );
}
echo "<ul>" . $xflist . "</ul>";


Заранее большое спасибо за помощь!)

Ответил: web102


Как-то так:
<?php

if( ! defined( 'DATALIFEENGINE' ) ) { die( "Hacking attempt!" ); }

$xflist = dle_cache( $xfname, $config['skin'] );
if(!$xflist) {
	$sql_result = $db->query( "SELECT xfields FROM " . PREFIX . "_post WHERE approve=1" );
	while ( $rows = $db->get_row( $sql_result ) ) {
		$xfields[] = $rows;
	}	
	$stack = array();
	foreach($xfields as $value){
		if($value[xfields]){
			$row = xfieldsdataload($value[xfields]);
			if($row[$xfname]){
				$rowdata = explode( ",", $row[$xfname]);
				foreach($rowdata as $value){
					if($value){
						$value = trim($value);
						array_unshift($stack, $value);
					}
				}
			}
		}
	}
	sort( $stack );
	$stack = array_count_values( $stack );
	foreach( $stack as $value => $count ){
		$xflist .= "<li><a href=\"/xfsearch/{$xfname}/{$value}/\">{$value} ({$count})</a></li>\n";
	}
	create_cache( $xfname, $xflist, $config['skin'] );
}
echo "<ul>" . $xflist . "</ul>";
Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх