Вывод предствления с таксономией без дубляжей.

Главные вкладки

Аватар пользователя Usertouch Usertouch 3 мая 2013 в 14:18

Добрый день, уважаемые друпаллеры.
Есть проблема, которую не удается решить.
Дело было так.
Создали словарь таксономии tax_1, добавили поле с этим словарем в форму регистрации пользователей tax_1_field, а также добавили три поля с числом с плавающей точкой (num_field_1, num_field_2 и num_field_3).
Пользователь заходит регистрироваться на сайт и в таблице выбирает один из терминов словаря tax_1 в поле tax_1_field, затем вводит три числа в поля num_field_1, num_field_2 и num_field_3.

Далее мы создаем представление (таблица/поля), где выводим "имя пользователя", значение tax_1_field и значения num_field_1, num_field_2 и num_field_3. После чего на странице данного представления у каждого пользователя выводится не один результат а всевозможные комбинации tax_1_field и num_field_1, num_field_2 и num_field_3, то есть вместо одной строки с 4-мя значениями, мы получаем 16 строк со всеми комбинациями этих значений.

Гуглил, пробовал решить все так:
1. Distinct - не помогло.
2. Агрегация - не совсем понял что это такое, но вроде бы некий вид группировки данных, но он тоже не помог.
3. Критерии фильтрации: Удалять дубликаты - не помогает, хоть и очень надеялся на это решение.

Вопрос: есть еще какие-то решения? Или скажите в каком из трех моих решений кроется ответ, может мало копал...
Спасибо.

Комментарии

Аватар пользователя whiesam whiesam 3 мая 2013 в 14:54

Аргументы и Отношения во views в помощь. + во вьюшке есть настройка запроса, там дубляжи можно убрать, и ещё их можно убирать в настройках полей.
Но мне кажется это не дубляжи таксономии, а не настроенные аргументы и отношения.

Аватар пользователя Usertouch Usertouch 3 мая 2013 в 15:17

"whiesam" wrote:

Аргументы и Отношения во views в помощь. + во вьюшке есть настройка запроса, там дубляжи можно убрать, и ещё их можно убирать в настройках полей.
Но мне кажется это не дубляжи таксономии, а не настроенные аргументы и отношения.

С настройкой запроса не получилось ничего, тоже рассчитывал убрать это галочкой "Уникальность" и "Чистый distinct", но не помогло. в настройках полей тоже все проставил - все равно по 100 штук выдает. Отношения пробовал - не получилось, а вот что такое аргументы?

Аватар пользователя q2_faith q2_faith 3 мая 2013 в 16:08

"Usertouch" wrote:
Далее мы создаем представление

по какой таблице?
"Usertouch" wrote:
добавили поле с этим словарем в форму регистрации пользователей

профиль стандартный или какой то доп.модуль?

Аватар пользователя Usertouch Usertouch 3 мая 2013 в 16:35

В пр

"q2_faith" wrote:
Далее мы создаем представление

по какой таблице?

Пользователи, то есть при создании представления выбрал "Показать": пользователи.
Правильно понял вопрос? Уточните какие именно таблицы Вы имеете ввиду.

"q2_faith" wrote:
добавили поле с этим словарем в форму регистрации пользователей

профиль стандартный или какой то доп.модуль?

Чтобы вывести в профиле поля таксономии и числа доп модулей мне не понадобилось, а вот чтобы это выводилось все в одной таблице в строку использовал модуль Field multiple.

Аватар пользователя q2_faith q2_faith 3 мая 2013 в 17:13

"Usertouch" wrote:
Правильно понял вопрос?

правильно
"Usertouch" wrote:
Чтобы вывести в профиле поля таксономии и числа доп модулей мне не понадобилось, а вот чтобы это выводилось все в одной таблице в строку использовал модуль Field multiple.

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

Аватар пользователя Usertouch Usertouch 3 мая 2013 в 17:24

Та

"q2_faith" wrote:
может в нем дело. просто если вы выводите пользователей, то дублей не должно быть. такое ощущение, что вы используете связи, которые и вызывают дубли

Так связи и не использую, то есть в настройках представления нет никаких "ОТНОШЕНИЙ". Или Вы не об этих связях?

Аватар пользователя Usertouch Usertouch 4 мая 2013 в 12:17

"q2_faith" wrote:
об этих. выложите запрос, который формирует вьюшка

И в этот раз надеюсь, что правильно понял Вас.
На странице представления есть три поля фильтрации и результат выдается только после ввода данных в эти поля.
Поле 1: От куда - место отправления груза
Поле 2: Куда - место назначение груза
Поле 3: Наименование - наименование компании
У полей нет зависимости, можно сделать фильтр по одному полю, а можно сразу по всем.
А вот что формирует представление в строке браузера по нажатию кнопки "НАЙТИ"
Значения полей были соответственно
Поле 1: Пекин/Китай/Beijing/China PEK
Поле 2: Киев

http://mysite.ru/result.html?field_from_tid=%D0%9F%D0%B5%D0%BA%D0%B8%D0%...

Аватар пользователя q2_faith q2_faith 4 мая 2013 в 13:23

"Usertouch" wrote:
И в этот раз надеюсь, что правильно понял Вас.

в этот раз не правильно. мне нужен mysql запрос. если у вас не показывается на странице, то в настройках вьюс поставьте галочку

Аватар пользователя Usertouch Usertouch 10 ноября 2015 в 11:49

"q2_faith" wrote:
в этот раз не правильно. мне нужен mysql запрос. если у вас не показывается на странице, то в настройках вьюс поставьте галочку

Аватар пользователя q2_faith q2_faith 4 мая 2013 в 14:15

"Usertouch" wrote:

а теперь скриншот самой вьюшки, что то у вас многовато джойнов - из за них дубли и идут скорее всего

Аватар пользователя Usertouch Usertouch 10 ноября 2015 в 11:49

"q2_faith" wrote:
а теперь скриншот самой вьюшки, что то у вас многовато джойнов - из за них дубли и идут скорее всего

Аватар пользователя Usertouch Usertouch 4 мая 2013 в 15:46

Сейчас работают по условию "И". Цель фильтров:
1. Фильтр роль: agent
2. Фильтр по активности учетной записи пользователя: активен
3. И три раскрытых фильтра по наименованию, от куда и куда.

Может поменять условия на или?

Аватар пользователя q2_faith q2_faith 4 мая 2013 в 16:04

"Usertouch" wrote:
Может поменять условия на или?

что то у вас не то со вьюшкой, никогда проблем не возникало с фильтрами

Аватар пользователя Usertouch Usertouch 4 мая 2013 в 19:34

Пробовал делать новую вьюху по словарю таксономии. Тогда в полях нет таких значений как имя пользователя и все прочие нужные мне поля со страницы пользователя. Но это решаемо при помощи отношений. Но в новой вьюхе при добавлении прочих полей опять вылазят дубли. Решение не найдено. Ищу дальше.

Аватар пользователя Usertouch Usertouch 4 мая 2013 в 19:55

Есть еще вот такая фишка:
При настройке полей доступна вкладка "Настройка множественности полей".
Можно поставить галочку на выводить все значения в строку. Тогда все значения пользователя выводятся в одной строке в таблице (можно также настроить, чтобы значения были помещены в список - маркированный или нумерованный). Но тогда при поиске каких-либо значений через раскрытые фильтры, выводятся все значения вместе в одной строке, даже те, которые не были указаны в фильтре.

Зато при таком варианте нет дубляжей, но меня он не устраивает. Поэтому я эту галку убираю. Да еще и не в одном поле, а во всех множественных полях. Думаю в этом и проблема. Вьюха начинает выводить строки по нескольку раз, так как в каждом поле не стоит галки выводить в одной строке.

Короче, выводить все значения в одной строке мне не нужно, а если каждое значение вывести отдельной строкой, тогда получается вместо 5 строк - 25 строк.

Аватар пользователя Usertouch Usertouch 6 мая 2013 в 19:17

Совсем в отчаянии я залез в БД и вот, что понял.
В БД есть привязка всех полей к пользователю, но нет привязки полей друг другу. Это и есть наверное причина вывода дубляжей. Сервер просто начинает перебирать все значения, которые есть у пользователя и делать все возможные комбинации с ними. Как возможно связать в одну БД и чтобы вывод был строго по одной строке из БД?

Аватар пользователя whiesam whiesam 7 мая 2013 в 1:13

ИМХО отношения настроивай во вьюсе.
Бывало такое: чтобы вытащить нужное значения приходилось по 4 отношения пихать и каждое было подключено к следующему.

Аватар пользователя Usertouch Usertouch 7 мая 2013 в 4:53

"whiesam" wrote:
ИМХО отношения настроивай во вьюсе.
Бывало такое: чтобы вытащить нужное значения приходилось по 4 отношения пихать и каждое было подключено к следующему.

Понятно, отношения как раз и связывают не связанные таблицы БД, правильно?