Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]Wyszukiwanie po imieniu i nazwisku
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam, jak w temacie, chcę zrobić wyszukiwarkę, ale tak żeby szukała po imieniu , nazwisku lub imieniu i nazwisku

namazałem coś takiego:

  1.  
  2. $sql=mysql_query("Select imie,nazwisko from uzytkownicy where imie like '%$szukany%' or nazwisko like '%$szukany%'");
  3.  



1 po imieniu kiedy nacisnę spację - 0 wyników wyszukiwania i wlasciwie tylko tu jest problem
wookieb
trim
Poza tym sensem byłoby rozbijanie słów i wyszukiwanie ich. Rozbij ciąg na słowa za pomoca explode
neo1986kk
no właśnie trafiłem na temat gdzie dałeś cały kod, tylko teraz muszę się jakoś za to zabrać
rozumiem że w tamtym kodzie

$slowa to moje $szukane?
wookieb
Nie wiem, bo nie mam w pamięci 6000 moich postów.
neo1986kk
prawie 7000 http://forum.php.pl/index.php?showtopic=125941
wookieb
No to masz tam pięknego gotowca.
  1. $slowa = explode(' ', $szukany);

Żebyś nie miał wątpliwości.
neo1986kk
ale to i tak jakoś nie dokońca dobrze działa bo na przyklad mam kilka Karolin

i pisze tam

Karolina Kowalska

to mi wyskakują wszystkie ale w kolejności takiej

Karolina Zuba
Karolina Gębka
Karolina Andrzejewska
Karolina Kowalska
Katarzyna Molęda.

albo piszę

Łukasz Stańczyk to nad nim jest Wojciech Stańczyk :/ coś nie bardzo pewnie on sortuje jeszcze po ID i dlatego bo robi tak że szuka

Łukasz or Stańczyk czyli znalazł 2 a że Wojciecha id jest mniejsze to go wywala jako pierwszego... a masz jakiś pomysł żeby to zablokować?
wookieb
Zmień sortowanie na po "imie" a potem po "nazwisko"
neo1986kk
no tak to przecież napisałem że sortuje po ID sprawdza albo %imie% albo %nazwisko% i wyrzuca imie i nazwisko dopasowanej osoby tylko ze w kolejności id tych osób. a dobrze by było gdyby to połączyć

Cytat(wookieb @ 20.01.2011, 14:25:10 ) *
Zmień sortowanie na po "imie" a potem po "nazwisko"


YYY jak " a potem"?

  1.  
  2. $szukam=mysql_query("Select imie,nazwisko from uzytkownicy where $where order by imie ASC, nazwisko ASC");
  3.  


to nic nie dalo

wpisując Karolina Wrońska pierwsza mi wyskakuje Karolina Andrzejewska
wookieb
Proszę Cię przejrzyj kursy Mysql...
  1. SELECT imie,nazwisko FROM uzytkownicy WHERE $where ORDER BY imie, nazwisko
neo1986kk
no już to zrobiłem tylko że tak jak pokazałem tylko że to nic nie dało

jak wpisuję Karolina Wrońska to powinno być pierwsze Karolina Wrońska a nie Karolina Andrzejewska ale skoro sortuje po nazwisku no to tak wychodzi prawda.
wookieb
  1. SELECT imie, nazwisko, ((imie LIKE "%Karolina%") + (nazwisko LIKE "%Wrońska%")) AS rel FROM uzytkownicy WHERE nimie LIKE "%Karolina%" OR nazwisko LIKE "%Wrońska%" ORDER BY rel DESC, imie, nazwisko

Polecam nie używać LIKE na rzecz zwykłego =
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-2025 Invision Power Services, Inc.