Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prosta wyszukiwarka a jednak problem, Problem z wyszukiwanie np: imion i nazwisk
kilinho
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.05.2008

Ostrzeżenie: (0%)
-----


Witam.

Mam sobie wyszukiwarke osob ktore zarejestrowaly sie na mojej stronie.
Tabela danych tych osob:
ID | Imie | Nazwisko | Miejscowsc | itd

I teraz problem polega na tym ze wpisujac w formularzu znajdz np. Jan Kowalski, to skrypt pyta sie w do tabelki:
select * from tabelka where nazwisko like '%Jan Kowalski%' and imie like '%Jan Kowalski%'
to zapytanie da 0 wynikow.
Jan Kowalski jest wpisywane w jednym polu.
W jaki sposob zadac pytanie badz przerobic skrypt php aby dojsc do takiej formy:
select * from tabelka where nazwisko like '%Kowalski%' and imie like '%Jan%'?
Czy tworzac indeksy w tabelce dla Imie i Nazwisko badz explod`ujac Jana Kowalskiego na dwa oddzielne wyrazy (tworzac z niego tablice i najpierw przeszukac Jan a potem Kowalski). Czy te dwie metody dadza rozwiazanie? (tablica moze byc malo wydajna przy wiekrzej ilosc slow?)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kilinho
post
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.05.2008

Ostrzeżenie: (0%)
-----


EDIT: teraz jest tak:
ten skrypt da nam teraz
  1. <?php
  2. SELECT * FROM `uzytkownicy` where `last_name`='Jan' AND `first_name`='Jan'OR `last_name`='Kowalski' AND `first_name`='Kowalski'
  3. ?>

a powinno byc

  1. <?php
  2. SELECT * FROM `uzytkownicy` where (`first_name` = 'Jan' and `last_name` = 'Kowalski') or (`first_name` = 'Kowalski' and `last_name` = 'Jan');
  3. ?>


Pisanie takich skryptow jest zlym rozwiazaniem:
1. Wpisujac Jan to bedzie szukac imie=jan i nazwisko=jan wiec jest bez sensu
2. przy trzech slowach juz trzeba sprawdzac wszystkie kombinacje
3. malo wydajne pzy wiekrzej ilosci danych
4. generowane zapytanie staje sie zbyt dlugie co juz samo spowolni dzialanie

Wniosek:
Szukac innego rozwiazania, byc moze ktos ma jakis pomysł?

Ten post edytował kilinho 29.06.2008, 13:29:10
Powód edycji: jak używasz bbcode to poprawnego
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 14:53