![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 3.04.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam dość zaawansowaną wyszukiwarkę w której potrzebuję wyświetlić dodatkowo ilość pasujących wyników. np checkboxy " funkcje: [] wifi (12) [] bluetooth (16) [] android (5) " coś na zasadzie jak na allegro w wyszukiwaniach. Czy ktoś mi może pomóc w znalezieniu rozwiązania albo napisać pod jaką nazwą tego szukać? Taka opcja jest coraz częściej używana więc chyba powinno to mieć swoją terminologie albo nazwę funkcji. Oczywiście jeżeli doctrine 2 zawiera taką funkcję to byłbym wdzięczy za jej wskazanie (IMG:style_emoticons/default/smile.gif) szukam i nie mogę znaleźć Dzięki i pozdrawiam, Konrad |
|
|
![]() |
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 3.04.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ok, mam coś takiego:
count - jeżeli 1, zawiera cechę o id "formId" teraz mam zapytanie do bazy (trochę warunków WHERE) $qb -> from('Application\Entity\Phone', 'p'); $qb -> join('p.link','l'); $qb -> where('p.active = 1'); $qb -> leftJoin('p.prices','price'); $qb -> andWhere('price.value > :minPrice'); $qb -> andWhere('price.value < :maxPrice'); $qb -> setParameter('minPrice',$minPrice); $qb -> setParameter('maxPrice',$maxPrice); Po czym do zapytania dołączam: foreach($form as $id =>$value) $qb -> leftJoin('p.featureForm','formId_'.$id,'WITH','formId_'.$id.'.count = 1 AND 'formId_'.$id.'.answerId = '.$id); Lecz problem w tym że gdy w select odwołam się do "count(formId_$id) as ct_form_$id ", otrzymuję wynik nieuwzględniający np cen. Co prawda mógłbym dodać warunki where do left join ale to byłoby masakrycznie niewydajne. Jak można odwołać się do zewnętrznej tabeli tak żeby zliczyła tylko te wartości które są zwracane w tym zapytaniu a nie jak to ma teraz miejsce że odwołuje się do wszystkich elementów (nawet nieaktywnych i niemieszczących się z zakresie cen)? Pozdrawiam, Konrad Ten post edytował kilaz91 20.03.2015, 13:04:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 23:40 |