Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [propel][Criteria] wyszukiwanie danych w dwóch lub więcej kolumnach
Forum PHP.pl > Forum > Gotowe rozwiązania > Skrypty obsługi baz danych
kaniagandzowski
Witam

Posiadam bazę, w której jest tabela klientów, składająca się z kolumn imię, nazwisko, tel, adres itd

Chcę umożliwić wyszukanie klienta poprzez wpisanie w polu wyszukiwarki imię i nazwisko np Jan kowalski. Teraz mam problem by wyszukać należało by wpisać każde słowo w osobnych polach, które każde pole odpowiadało przeszukiwanej kolumnie

Nie wiem w jaki sposób umożliwić wyszukiwanie w dowolnych kolumnach i zwrócenie wyników bardziej pasującej zapytaniu.

Poniżej przykład przedstawia wyszukanie klienta ale wymagane jest podanie osobno imie i nazwisko.
  1. <?php
  2. $kryteria = new Criteria();
  3.  
  4.  
  5. //sortowanie danych według alfabetu
  6. $kryteria->addAscendingOrderByColumn(KontrahentowPeer::IMIE );
  7. $kryteria->addAscendingOrderByColumn(KontrahentowPeer::NAZWISKO );
  8.  
  9. $kryteria->add(KontrahentowPeer::IMIE , '%Jan%', Criteria::LIKE);
  10. $kryteria->add(KontrahentowPeer::NAZWISKO , '%Kowalski%', Criteria::LIKE);
  11. $db = KontrahentowPeer::doSelect($kryteria);
  12. ?>
mike
A co stoi na przeszkodzie rozbić Jan Kowalski względem spacji?
I już będziesz miał dwa człony do wyszukiwania.
kaniagandzowski
a co zrobi jeśli napisze Kowalski Jan lub samo nazwisko albo wpisze adres zamieszkania klienta.

Myślę że musiał bym stworzyć pole typu select w którym by wybierał w jakiej kolumnie ma przeszukać czy zapytanie tyczy sie adresu czy imię lub nazwiska.
Jojo
A próbowałeś metody Criteria::addOr() ?
kaniagandzowski
coś probowałem ale nie wychodziło mi sad.gif może, dlatego że propela znam od paru dni i tylko podstawowe jego funkcje.

Musiałem zostawić to i zrobiłem na zasadzie, że wybiera w jakiej kolumnie ma szukać dane słowo.

Ale chętnie bym się dowiedział jak w propelu zrobić, żeby przeszukiwał bazę w różnych kolumnach dane słowa i wyświetlił zgodnie z trafnością na dane szukane słowo lub słów.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.