Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: отбор неповторяющихся значений из базы данных
 
 автор: Evgen   (21.04.2006 в 22:03)   письмо автору
 
 

Прошу помочь!

Есть массив с элементами:

array { 1,2,3,4,5,
6,7,8,9,0 }

и есть наборы элементов

A = {1, 3, 5}
B = {5, 6}
C = {5, 8}

Нужно отобрать неповторяющиеся элементы, содержащиеся в этих наборах,
т.е. должно получиться:

$result = {1, 3, 5, 6, 8}.

Как это сделать?

Спасибо!

   
 
 автор: cheops   (22.04.2006 в 00:58)   письмо автору
 
   для: Evgen   (21.04.2006 в 22:03)
 

Какое отношение имеет первый массив ко всему этому?
Как это завязано с базой данных?

   
 
 автор: cheops   (22.04.2006 в 00:59)   письмо автору
 
   для: Evgen   (21.04.2006 в 22:03)
 

Наборы - это SET или что-то другое?

   
 
 автор: Evgen   (22.04.2006 в 04:37)   письмо автору
 
   для: cheops   (22.04.2006 в 00:59)
 

Извиняюсь за коряво заданный вопрос!

Попробую так:
в базе есть таблица с параметрами товаров. Параметры не уникальны для каждого товара, поэтому вынесены в отдельную таблицу.

В другой таблице находятся товары.

В третьей таблице - наборы этих товаров.

Мне надо получить перечень всех неповторяющихся параметров товаров, присутствующих в наборе.

(Запрос к БД: набор (известен) - товары - параметры. Результат : последовательный список всех параметров товаров, входящих в набор. Один и тот же параметр - несколько раз).

Не очень запутано?

   
 
 автор: cheops   (22.04.2006 в 11:22)   письмо автору
 
   для: Evgen   (22.04.2006 в 04:37)
 

Опять же ускальзает понятие набора - это что за набор, откуда он берётся - это корзина или что-то другое?

   
 
 автор: Evgen   (22.04.2006 в 14:51)   письмо автору
 
   для: cheops   (22.04.2006 в 11:22)
 

Опять извиняюсь!

Нет, это не корзина. Это набор - как составной товар, т.е. он тоже может выбираться покупателем, после чего его состав вытаскивается из базы.

Например, набор (или как правильнее его обозвать?) - передаточный механизм №1. Состоит из шестеренки №1, шестеренки №2, подшипника №1, подшипника №3. Является самостоятельным товаром, находится в базе в таблице с такими механизмами.

Эти самые шестеренки и подшипники тоже могут являться товаром, доступным для выбора.

Они же могут являться составной частью механизма № 2 и т.д.

   
 
 автор: cheops   (22.04.2006 в 15:58)   письмо автору
 
   для: Evgen   (22.04.2006 в 14:51)
 

Если возможность поместить id всех товарных позиций в массив, пускай даже они будут идти в разнобой и не попорядку?

   
 
 автор: Evgen   (22.04.2006 в 17:40)   письмо автору
 
   для: cheops   (22.04.2006 в 15:58)
 

Уточню - Ваш вопрос начинается - "есть ли..." ? Если да (и я правильно понял Ваш вопрос - id механизмов, шестеренок и проч. - в одну таблицу), то ответ такой - конечно возможно. В каком порядке - тоже не принципиально.

Только пока не понятно, что это даст.

   
 
 автор: cheops   (22.04.2006 в 22:00)   письмо автору
 
   для: Evgen   (22.04.2006 в 17:40)
 

Имеется ввиду не в таблицу, а в PHP-массив - тогда бы мы могли получить уникальные значения (хотя в таблице тоже можно) и по ним сформировать запрос.

   
 
 автор: Evgen   (22.04.2006 в 22:24)   письмо автору
 
   для: cheops   (22.04.2006 в 22:00)
 

Так ведь id товара (шестеренок и т.п.) и id их параметров вытаскиваются из БД запросом. В форме мы выбираем id комплекта (механизм), остальное получаем на выходе.

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

Тогда потребуется второй запрос, который будет содержать неповторяющиеся id !
В принципе, это возможно. База не объемная.

А как из массива вытащить неповторяющиеся элементы? (или этот вопрос нужно разместить на форуме ПХП ?)

   
 
 автор: cheops   (22.04.2006 в 22:29)   письмо автору
 
   для: Evgen   (22.04.2006 в 22:24)
 

Для этого применяется функция array_unique() - ей скармливается массив - а на выходе массив с уникальными значениями.

   
 
 автор: Evgen   (22.04.2006 в 22:34)   письмо автору
 
   для: cheops   (22.04.2006 в 22:29)
 

Огромное спасибо!

P.S. А два обращения к базе - это нормально, ничего тут криминального (или двойки по программированию...)?

   
 
 автор: cheops   (23.04.2006 в 11:04)   письмо автору
 
   для: Evgen   (22.04.2006 в 22:34)
 

Нет в этом ничего криминального нет, более того, такие схемы часто работают быстрее чем многотабличные запросы. Вы когда пишите программу на PHP не пытаетесь же всю логику программы поместить в один оператор :)))

   
 
 автор: Evgen   (23.04.2006 в 23:34)   письмо автору
 
   для: cheops   (23.04.2006 в 11:04)
 

Разумно!

Спасибо за помощь!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования