[SF2][SF][Doctrine2] Problem z zapytaniem orWhere/andWhere |
[SF2][SF][Doctrine2] Problem z zapytaniem orWhere/andWhere |
1.03.2016, 13:38:30
Post
#1
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 0 Dołączył: 21.08.2011 Ostrzeżenie: (0%) |
Na poczatek struktura bazy danych:
produkt id name price ... products_categories product_id category_id categories id name ... attributes id name attribute_sets id attribute_id product_id value categories_attributes category_id attribute_id Mam formularz z multiselektami, ktory przekazuje do funkcji z repozytorium parametry, w tym id wartosci cechy produktu. Probuje przy uzyciu query buildera wykonac zapytanie, ktore by mi zwrocilo pasujace rekordy - liste produktow z wartosciami cech zaznaczonych w formularzu. Jednak mam problem, bo gdy uzyje orWhere panuje istny chaos - zwracane sa niepoprawne wyniki, jesli zas uzyje andWhere pojawiaja sie poprawne wyniki, ale brane sa pod uwage tylko przekazane parametry z ostatniego checkboxa w ostatnim multiselekcie. Zaznaczam w formularzu przykladowo (cecha | wartosc cechy): pierwszy multiselect: kolor (pobierane jest id cechy) | bialy (pobierana jest wartosc cechy jako string) drugi multiselect: typ (pobierane jest id cechy) | prawe (pobierana jest wartosc cechy jako string)
Czy ktos z Was ma jakis pomysl w jaki sposob poprawic zapytanie? Ten post edytował swiezak 1.03.2016, 14:02:42 |
|
|
2.03.2016, 07:27:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 13 Dołączył: 16.06.2007 Ostrzeżenie: (0%) |
Przecież ten zapis w pętli nadpisze ci bindowaną wartość parametru na ostatni element tablicy... Musiałbyś mieć unikalne nazwy parametrów. Z resztą zrzuć sobie zapytanie poprzez $qb->getQuery()->getSQL() i zobaczysz, że będziesz miał kilka takich samych where.
|
|
|
2.03.2016, 08:02:53
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Odstawiając temat Doctrine'a na chwilę, rozwiązanie samo w sobie: http://stackoverflow.com/questions/927724/...utes-in-an-item - przeniesienie tego do ORM-a nie będzie wielce skomplikowane.
PS. Zastanów się od razu czy nie skorzystać z narzędzi typu Apache SOLR, które zdecydowanie lepiej radzą sobie z wyszukiwaniem. |
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 19:01 |