• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Вывести все значения одного доп поля

killoff

CD тихо, и не DVD меня ;)
Команда форума
Модератор
Регистрация
13 Май 2008
Сообщения
2.619
Реакции
1.125
  • Автор темы
  • Модер.
  • #1
Помогите вывести все значения доп поля по всем новостям. Раньше где-то видел что-то подобное, но найти так и не смог ни на форуме ни в гугле...
 
не совсем понятно в каком виде надо вывести.
Вот держи такой вариант.
Вывод в виде массива...
Создаешь файлик в папке modules и в него помещаешь
PHP:
<?php
include ('engine/api/api.class.php'); // подключаем api
$table = 'dle_post';  // название таблицы
$fields  = 'xfields'; // нужные поля, * - все поля
$where = 'approve=1'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все

$xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit);

print_r($xfields); // вывод на экран количества элементов
А затем в нужном месте выводишь.
 
  • Автор темы
  • Модер.
  • #3
а как ещё можно добавить свои HTML теги к каждому значению?

PS забыл добавить закрывающий тег ?> :)
 
закрывать не обязательно :pioner:

лови с выводом элементов массива
PHP:
<?php
include ('engine/api/api.class.php'); // подключаем api
$table = 'dle_post';  // название таблицы
$fields  = 'xfields'; // нужные поля, * - все поля
$where = 'approve=1'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все
$xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit);

//print_r($xfields); // вывод на экран количества элементов

foreach($xfields as $value) //выводим на экран массив
  {
    if($value[xfields]){ //проверяем есть ли элемент в массиве
        echo "<strong>"; //любой тег ;)
        echo $value[xfields]; //выводим значение
        echo "</strong>"; //любой тег ;)
    }
  }
PS можно еще сюда добавить кеширование ;)
 
  • Автор темы
  • Модер.
  • #5
все выводит, но только вообще всЁ ((( забыл уточнить что нужно вывести все значения по конкретному доп полю! Как можно добавить кеширование?
 
лови с кешем
PHP:
<?php
include ('engine/api/api.class.php'); // подключаем api
$table = 'dle_post';  // название таблицы
$fields  = 'xfields'; // нужные поля, * - все поля
$where = 'approve=1'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все


$xfields = $dle_api->load_from_cache (xfields, $xfields); //берем наш кеш, если есть конечно ))

if( !$userblock ) { //проверяем взяли ли мы кеш и если не взяли, то делаем запрос

    $xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit); //делаем запрос к бд
    }

$dle_api->save_to_cache ( xfields, $xfields); //сохраняем в кеш

foreach($xfields as $value) //выводим на экран массив
  {
    if($value[xfields]){ //проверяем есть ли элемент в массиве
   
        echo "<strong>"; //любой тег ;)
        echo $value[xfields]; //выводим значение
        echo "</strong>"; //любой тег ;)
    }
  }

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


$xfields = $dle_api->load_from_cache (xfields, $xfields); //берем наш кеш, если есть конечно ))

if( !$userblock ) { //проверяем взяли ли мы кеш и если не взяли, то делаем запрос

    $xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit); //делаем запрос к бд
    }

$dle_api->save_to_cache ( xfields, $xfields); //сохраняем в кеш

foreach($xfields as $value) //выводим на экран массив
  {
    if($value[xfields]){ //проверяем есть ли элемент в массиве
   
        $row = xfieldsdataload($value[xfields]);
        echo "<strong>"; //любой тег ;)
        echo $row[$xfield];
        echo "</strong>"; //любой тег ;)
        }
  }
 
  • Автор темы
  • Модер.
  • #8
вот как все выводится:
Код:
year|1979||country|СССР||slogan|-||director|Андрей Тарковский||scenario|Аркадий Стругацкий, Борис Стругацкий, Андрей Тарковский||director-of-the-film|Александра Демидова, Вилли Геллер||operator|Александр Княжинский, Георгий Рерберг, Леонид Калашников||composer|Эдуард Артемьев||painter|Александр Бойм, Андрей Тарковский, Шавкат Абдусаламов||editing|Людмила Фейгинова||genre|фантастика, драма, детектив, приключения||premiere|17 апреля 1980||years-old|12||time|163 мин. / 02:43||artist|Александр Кайдановский, Анатолий Солоницын, Алиса Фрейндлих, Николай Гринько, Наташа Абрамова, Файме Юрно, Е. Костин, Раймо Ренди, Сергей Яковлев, Владимир Заманский||vk_filmpack_
все одним целым идет...
 
  • Автор темы
  • Модер.
  • #9
добавил в $xfield = ''; ///ИМЯ ДОП ПОЛЯ ДЛЯ ВЫВОДА имя нужного доп поля, но ничего вообще не вывидится ((((
 
добавил в $xfield = ''; ///ИМЯ ДОП ПОЛЯ ДЛЯ ВЫВОДА имя нужного доп поля, но ничего вообще не вывидится ((((
вот так вот? кеш удалил(хотя он здесь не при чем)
PHP:
<?php
include ('engine/api/api.class.php'); // подключаем api
$table = 'dle_post';  // название таблицы
$fields  = 'xfields'; // нужные поля, * - все поля
$where = 'approve=1'; // условия выборки
$multirow = 1; // забирать ли один ряд или несколько
$start = 0; // начальное значение выборки
$limit = 0; // количество записей для выборки, 0 - выбрать все
$xfield = 'year'; ///ИМЯ ДОП ПОЛЯ ДЛЯ ВЫВОДА


$xfields = $dle_api->load_from_cache (xfields, $xfields); //берем наш кеш, если есть конечно ))

if( !$userblock ) { //проверяем взяли ли мы кеш и если не взяли, то делаем запрос

    $xfields = $dle_api->load_table ($table,$fields,$where,$multirow,$start,$limit); //делаем запрос к бд
    }

$dle_api->save_to_cache ( xfields, $xfields); //сохраняем в кеш

foreach($xfields as $value) //выводим на экран массив
  {
    if($value[xfields]){ //проверяем есть ли элемент в массиве
 
        $row = xfieldsdataload($value[xfields]);
        echo "<strong>"; //любой тег ;)
        echo $row[$xfield];
        echo "</strong>"; //любой тег ;)
        }
  }
 
Назад
Сверху