powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить запрос на основе массива данных
8 сообщений из 8, страница 1 из 1
Помогите составить запрос на основе массива данных
    #39086266
imediasun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть массив
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
	Array
(
    [0] => Array
        (
            [id_pages_filter] => 1
            [name_field] => автор
            [main_field] => pages.author
            [linked_table] => authors
            [linked_field] => id_author
        )

    [1] => Array
        (
            [id_pages_filter] => 2
            [name_field] => шаблон
            [main_field] => pages.layout
            [linked_table] => layouts
            [linked_field] => layout_id
        )

    [2] => Array
        (
            [id_pages_filter] => 3
            [name_field] => дата
            [main_field] => pages.page_creation_date
            [linked_table] => 
            [linked_field] => 
        )

)


Необходимо
//для каждого ключа массива выбрать уникальные значения из таблицы указанной в элементе массива [main_field]
//соединив и выбрав информацию из сопряженной таблицы указанной в элементе массива [linked_table] соединительным полем является элемент массива [linked_field]
Важно чтобы повторяющиеся значения встречающиеся в [main_field] не учитывались а были бы уникальными
результатом должен быть массив следующего вида

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
	Array
(
    [0] => Array
        (
            [name_filter] => 'автор'
            [0] => Фисалович
            [1] => Гарбузевич
            //потому что в таблице pages только 2 уникальных автора
        )

    [1] => Array
        (
            [name_filter] => шаблон
            [0] => smart_layout
            //потому что в таблице pages только один уникальный шаблон и он для всех страниц
        )

    [2] => Array
        (
            [name_filter] => дата
            [0] => 12.01.15
            [1] => 13.01.15
            [2] => 14.01.15
            [3] => 15.01.15

        )

)
...
Рейтинг: 0 / 0
Помогите составить запрос на основе массива данных
    #39086275
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imediasun, а в чем именно у вас возникла трудность, когда вы самостоятельно пробовали составить этот запрос?
Скиньте свой запрос, который вы только что пытались составить и мы вам найдем в нем ошибку и подскажем как именно его доработать.
...
Рейтинг: 0 / 0
Помогите составить запрос на основе массива данных
    #39086279
imediasun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для каждого элемента массива подобный запрос
SELECT * FROM (`authors`) Right JOIN `pages` ON `pages`.`author`=`authors`.`id_author`

но дело в том что в таблице pages 6 неуникальных авторов, и подобный запрос мне выводит 6 элементов массива вместо одного
вот так
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
         [name_filter] => автор
            [0] => Array
                (
                    [0] => Array
                        (
                            [id_author] => 1
                            [author_sername] => Фисалович
                            [author_name] => Ольга
                            [author_photo] => /photos/fisalovich.jpg
                            [author_job] => эколог-проектант ЧП «Центр экологической безопасности»                   
                            [id_page] => 1
                            [name] => Главная
                            [page_type] => 4
                            [layout] => 1
                            [author] => 1
                            [page_creation_date] => 0000-00-00 00:00:00
                        )

                    [1] => Array
                        (
                            [id_author] => 1
                            [author_sername] => Фисалович
                            [author_name] => Ольга
                            [author_photo] => /photos/fisalovich.jpg
                            [author_job] => эколог-проектант ЧП «Центр экологической безопасности»                   
                            [id_page] => 2
                            [name] => Товары
                            [page_type] => 2
                            [layout] => 1
                            [author] => 1
                            [page_creation_date] => 0000-00-00 00:00:00
                        )

                    [2] => Array
                        (
                            [id_author] => 1
                            [author_sername] => Фисалович
                            [author_name] => Ольга
                            [author_photo] => /photos/fisalovich.jpg
                            [author_job] => эколог-проектант ЧП «Центр экологической безопасности»                   
                            [id_page] => 3
                            [name] => Вакансии
                            [page_type] => 0
                            [layout] => 1
                            [author] => 1
                            [page_creation_date] => 0000-00-00 00:00:00
                        )

                    [3] => Array
                        (
                            [id_author] => 1
                            [author_sername] => Фисалович
                            [author_name] => Ольга
                            [author_photo] => /photos/fisalovich.jpg
                            [author_job] => эколог-проектант ЧП «Центр экологической безопасности»                   
                            [id_page] => 4
                            [name] => События и новости
                            [page_type] => 6
                            [layout] => 1
                            [author] => 1
                            [page_creation_date] => 0000-00-00 00:00:00
                        )

                    [4] => Array
                        (
                            [id_author] => 1
                            [author_sername] => Фисалович
                            [author_name] => Ольга
                            [author_photo] => /photos/fisalovich.jpg
                            [author_job] => эколог-проектант ЧП «Центр экологической безопасности»                   
                            [id_page] => 5
                            [name] => О нас
                            [page_type] => 7
                            [layout] => 1
                            [author] => 1
                            [page_creation_date] => 0000-00-00 00:00:00
                        )

                    [5] => Array
                        (
                            [id_author] => 1
                            [author_sername] => Фисалович
                            [author_name] => Ольга
                            [author_photo] => /photos/fisalovich.jpg
                            [author_job] => эколог-проектант ЧП «Центр экологической безопасности»                   
                            [id_page] => 6
                            [name] => Контакты
                            [page_type] => 5
                            [layout] => 1
                            [author] => 1
                            [page_creation_date] => 0000-00-00 00:00:00
                        )

                )

        )


Модератор: Пожалуйста, используйте правильные тэги для оформления поста.
...
Рейтинг: 0 / 0
Помогите составить запрос на основе массива данных
    #39086288
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imediasun, дело в том, что вы огромным количеством дополнительных "оформлений" очень сильно затрудняете возможность помочь вам. Это ведь форум посвящен mysql, а не программированию на php.

Если ваш вопрос в том, как получить уникальные данные какого-то поля, то есть два способа группировка или модификатор distinct

Код: sql
1.
2.
select distinct name from t;
select name from t group by name;



Оба эти запроса дадут один и тот же результат - список уникальных значений по колонке name. Причем группировка работает ещё и как сортировка, а distinct всегда будет давать вперемешку случайным образом.

Итого, я призываю вас вычленить из вашей ситуации чисто вопрос относящийся к mysql и перестать его смешивать с вопросами программирования на php.
...
Рейтинг: 0 / 0
Помогите составить запрос на основе массива данных
    #39086481
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumiximediasun, дело в том, что вы огромным количеством дополнительных "оформлений" очень сильно затрудняете возможность помочь вам. Это ведь форум посвящен mysql, а не программированию на php. Модератор: +1
...
Рейтинг: 0 / 0
Помогите составить запрос на основе массива данных
    #39086492
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imediasunв таблице pages 6 неуникальных авторов, и подобный запрос мне выводит 6 элементов массива вместо одного
И правильно делает.
Если нужно "зачистить" повторные - делайте эту свёртку на клиенте.
...
Рейтинг: 0 / 0
Помогите составить запрос на основе массива данных
    #39086863
imediasun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Судя по этому запросу
Код: sql
1.
SELECT DISTINCT `author` FROM (`pages`) JOIN `authors` ON `pages`.`author`=`authors`.id_author`


он должен выбрать уникальные значения из поля author таблицы pages и подгрузить из таблицы authors информацию об авторе с id_author равным pages.author

но у меня получается вот такой массив без соединения
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
[0] => Array
                (
                    [0] => Array
                        (
                            [author] => 1
                        )

                )
...
Рейтинг: 0 / 0
Помогите составить запрос на основе массива данных
    #39086916
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
imediasunи подгрузить из таблицы authors информацию об авторе с id_author равным pages.author

он и не должен ничего подгружать, потому что после ключевого слова select вы указали только одно поле - authors - он вам его и выдает. если хотите ещё какие-то поля, то перечислите их через запятую


Код: sql
1.
select distinct authors, author_sername from pages join authors on author = id_author;



или если нужны только фамилии то сразу вот так

Код: sql
1.
select distinct author_sername from pages join authors on author = id_author;
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить запрос на основе массива данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]