1

Тема: Выборка из БД

У меня вот какая ситуация:
Пусть я сделал выборку из БД по некоторому полю (field1).
Как мне теперь сделать выборку из этих элементов по другому полю (field2)? Поля field1 и field2 принадлежат одной и тойже таблице в БД. Подскажите.:)

2

Re: Выборка из БД

какая ORM?
код покажите

3

Re: Выборка из БД

propel:
  designer_dress:
    id:           ~
    name:         { type: varchar(255), required: true }

  collection_dress:
    id:                 ~
    designer_dress_id:  ~
    name:               { type: varchar(255), required: true }

  dress:
    id:           ~
    designer_dress_id:     ~
    collection_dress_id:   ~
    model:        { type: varchar(255), required: true }
    color:        { type: varchar(255), required: true }
    img:          { type: varchar(255), required: true }
    price:        { type: float, required: true }
    available:    { type: boolean, required: true, default: 1 }

4

Re: Выборка из БД

покажите вашу критерию
по каких полях вы хотите сделать выборку?

если я правильно понял вопрос, то просто добавить условие для филд2 в существующую критерию

5

Re: Выборка из БД

Я хочу отобразить все записи из таблицы dress для которых заданы поля и designer_dress_id и collection_dress_id

6

Re: Выборка из БД

$c = new Criteria();
$c->add(DressPeer::DESIGNER_DRESS_ID, null, Criteria::NOT_EQUAL);
$c->add(DressPeer::COLLECTION_DRESS_ID, null, Criteria::NOT_EQUAL);
$dresses = DressPeer::doSelect($c);

результат в $dresses
если это будет использоваться не в 1м месте, то желательно вынести это в отдельную функцию в DressPeer классе

+ тут есть дублирование данных в базе, можно сохранять dress без designer_dress_id и брать его из collection_dress

dress:
    id:           ~
    collection_dress_id:   ~
    model:        { type: varchar(255), required: true }
    color:        { type: varchar(255), required: true }
    img:          { type: varchar(255), required: true }
    price:        { type: float, required: true }
    available:    { type: boolean, required: true, default: 1 }

Отредактировано chill (2010-02-28 18:40:09)

7

Re: Выборка из БД

Нет, такой код:

$c = new Criteria();
$c->add(DressPeer::DESIGNER_DRESS_ID, null, Criteria::NOT_EQUAL);
$c->add(DressPeer::COLLECTION_DRESS_ID, null, Criteria::NOT_EQUAL);
$dresses = DressPeer::doSelect($c);

из БД извлекает ВСЕ записи. А мне надо чтоб только те записи для которых например designer_dress_id=designer1 а collection_dress_id=collection2. И спасибо за замечание про дублирование:)

8

Re: Выборка из БД

http://www.symfony-project.org/book/1_2 … h_criteria
а вообще

Lexer пишет:

Я хочу отобразить все записи из таблицы dress для которых заданы поля и designer_dress_id и collection_dress_id

я подумал что надо достать все, у которых заданы любые designer_dress_id и collection_dress_id
а если надо конкретные, то

$c = new Criteria();
$c->add(DressPeer::DESIGNER_DRESS_ID, $designer1);
$c->add(DressPeer::COLLECTION_DRESS_ID, $collection2);
$dresses = DressPeer::doSelect($c);

9

Re: Выборка из БД

Спасибо!!! It's work!!! Как все просто оказалось :):D:)