Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie danych bez pol.znaczków/wielkich liter
superator
post 1.09.2006, 09:09:41
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 31.08.2006
Skąd: Stolica

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


Witam wszystkich
Mam prośbę o poradę. Mianowicie chcę pobrać z bazy MySQL (kodowanie latin1) dane odrazu z zamienionym wszstkimi znakami na małe oraz z usuniętymi polskimi znakami. Mam taką koncepcję zapytania, które jednak nie zamienia polskich znaków na znaki bez ogonków:

  1. <?php
  2. $sql="SELECT * FROM tabela WHERE LOWER(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE
  3. (REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE
  4. (REPLACE(REPLACE(REPLACE(REPLACE(nazwiska,'xb1','a'),'xe6','c'),'xea','e'),
  5. 'xb3','l'),'xf1','n'),'xf3','o'),'xb6','s'),'xbc','z'),'xbf','z'),'xa1','A'),'xc6','C'),
  6. 'xca','E'),'xa3','L'),'haha.gif1','N'),'haha.gif3','O'),'xa6','S'),'xac','Z'),'xaf','Z'))
  7. LIKE '%".$fraza."%'";
  8. ?>


Czy taki koncept jest słuszny, czy muszę jakoś rozbić to zapytanie na dwa osobne, które jedno będzie pobierać wszystkie dane, a drugie będzie wyszukiwać?

Pozdro 4All
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Coolmax
post 1.09.2006, 10:25:53
Post #2





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


Co do małych liter - nie lepiej po pobraniu danych, a przed samym ich wyświetleniem/użyciem przepuścić to przez strtolower" title="Zobacz w manualu php" target="_manual?


--------------------
Go to the top of the page
+Quote Post
superator
post 1.09.2006, 10:34:55
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 31.08.2006
Skąd: Stolica

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


Nie napisałem, że to zapytanie dotyczy wyszukiwarki. Chciałbym, żeby po wpisaniu frazy (która ma już litery pozamieniane na małe i bez pol.znaczków we wcześniejszych liniach skryptu) nie uwzględniał wielkości liter, tzn. jak ktoś wpisze np. "CzĘść" żeby szukało wyrażenia "czesc". W takim wypadku przydałoby się żeby odrazu dane pobierane do prównania nie miały wspomnianych znaków i były wszyskie małe.
Go to the top of the page
+Quote Post
phpion
post 1.09.2006, 14:02:09
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Twoje zapytanie sql jest dosc zagmatwane... Lepiej zrob to poprzez php.
  1. <?php
  2. $string = strtolower($string);
  3. $change = Array("ę" => "e", "ó" => "o", "ą" => "a");
  4. // ^ rozbuduj o reszte znakow + wielkie litery
  5. foreach ($change as $index => $value)
  6. $string = str_replace($index, $value, $string);
  7. ?>

Nie sprawdzalem coprawda ale powinno dzialac smile.gif w zmiennej $string masz ciag wpisany do poszukiwania (nie cale zapytanie)
Go to the top of the page
+Quote Post
superator
post 1.09.2006, 14:29:48
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 31.08.2006
Skąd: Stolica

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


Owszem, zapytanie jest skomplikowane dlatego, że nie dotyczy tego co napisałeś...
Jest sobie (moja) wyszukiwarka. Wyszukiwarka ma pole gdzie się wpisuje literki. Literki wędrują do zmiennej, która jest przetwarzana przez php (zmniejszanie liter i usuwanie polznaczków). Następnie pobierane są dane z bazy (I W TYM MIEJSCU CHCĘ PRZEKONWERTOWAĆ DANE POCHODZĄCE Z BAZY, A NIE Z ZAPYTANIA) odpowiadające zmiennej zawierającej już "czyste" literki z wyszukiwarki. Czy teraz już wiadomo dokładnie o co mi chodzi??
Pozdrawiam i dzięki za odzew.

Ten post edytował superator 1.09.2006, 14:31:07
Go to the top of the page
+Quote Post
SongoQ
post 1.09.2006, 16:25:05
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Jesli chcesz wyniki konwertowac na bazie to tak samo tylko ze dla pol ktore sa po slowie SELECT


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:46