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

Как отсортировать результат вывода данных из дополнительных полей по определенной букве ?


     04.04.2019    Все вопросы » Общие вопросы по PHP    535

вопрос
Есть код который выводит значение дополнительных полей из полной новости. Как сделать чтобы в результат выводились все слова начинающиеся например на букву "А"?



include ('engine/api/api.class.php'); // подключаем api
$table = 'dle_post';  // название таблицы
$fields  = 'xfields'; // нужные поля, * - все поля
$where = 'approve=1'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все
$xfield = 'avtora'; ///ИМЯ ДОП ПОЛЯ ДЛЯ ВЫВОДА
$time = '14000'; //время жизни кеша

$xfields = $dle_api->load_from_cache ($fields, $time, $xfields); //берем наш кеш, если есть конечно ))
if( !$xfields ) { //проверяем взяли ли мы кеш и если не взяли, то делаем запрос
    $xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit); //делаем запрос к бд
	sort($xfields); // Cортируем по алфавиту
    $dle_api->save_to_cache ( xfields, $xfields); //сохраняем в кеш
    }

$stack = array(); //создаем пустой массив
foreach($xfields as $value){  // перебор значений массива

    if($value[xfields]){ //проверяем есть ли элемент в массиве
	

        $row = xfieldsdataload($value[xfields]); //получаем нужное нам доп поле
        if($row[$xfield]){ //проверяем есть ли значение
       
            $rowdata = explode( ",", $row[$xfield]); //разбиваем наше значение на массив
            foreach($rowdata as $value){    //перебираем значения массива
                if($value){                    //проверяем есть ли значение
                    $value = trim($value);    //убираем пробелы
                    array_push($stack, $value); //добавляем в конец массива полученное значение
                    }
                }
            }
        }
    }
$stack = array_count_values($stack); //считаем повторы и избавляемся от повторных значений
foreach($stack as $key => $count){  //выводим окончательный вариант

    echo "<a href=/xfsearch/";  //открываем ссылку
    echo $key; //подставляем значение для поиска
    echo ">";
    echo $key."(".$count.")"; //имя ссылки и кол-во повторов
    echo "</a><br/>"; //закрываем ссылку
}

Ответа пока нет


Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх