wyszukiwarka

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
TakiJakis
Nowy
Nowy
Posty: 22
Rejestracja: ndz paź 24, 2004 1:40 pm

wyszukiwarka

Post autor: TakiJakis »

witam,

newsy trzymam w bazie mysql, a wyszukuje tak:

Kod: Zaznacz cały

$zapytanie = "SELECT * FROM news WHERE tresc LIKE '%".$slowo."%' ORDER BY id DESC"; 
$wykonaj = mysql_query($zapytanie); 
while($wiersz = mysql_fetch_array($wykonaj)){ 
[...]
niestety jak wpisze do szukania np. "oko", to nie wyszuka slowa "OKO" czy "oKo". co zrobic, aby wyszukiwarka ignorowala wielkosc liter?
yarpo
Nowy
Nowy
Posty: 168
Rejestracja: wt lut 08, 2005 6:29 pm
Lokalizacja: Gdańsk
Kontakt:

Re: wyszukiwarka

Post autor: yarpo »

Należy użyć odpowiedniej funkcji PHP [lub JS]:

[php]<?php
strtolower($slowo);

zapytanie = "SELECT * FROM news WHERE tresc LIKE '%".$slowo."%' ORDER BY id DESC";
$wykonaj = mysql_query($zapytanie);
?>[/php]
Na samej górze jest ta funkcja strtolower(string)

Mozna też powiększyć litery:
[php]<?PHP
$str = strtoupper($str);
?>[/php]
Ostatnio zmieniony czw lut 10, 2005 3:01 pm przez yarpo, łącznie zmieniany 1 raz.
yarpo
Nowy
Nowy
Posty: 168
Rejestracja: wt lut 08, 2005 6:29 pm
Lokalizacja: Gdańsk
Kontakt:

Re: wyszukiwarka

Post autor: yarpo »

A w JS to sa takie metody [dla obiektu string]:

Kod: Zaznacz cały

toLowerCase  - zamienia wszystkie litery w String'u na małe[
 
toUpperCase  - zamienia wszystkie litery w String'u na wielkie ]
TakiJakis
Nowy
Nowy
Posty: 22
Rejestracja: ndz paź 24, 2004 1:40 pm

Re: wyszukiwarka

Post autor: TakiJakis »

yarpo pisze:Należy użyć odpowiedniej funkcji PHP [lub JS]:

[php]<?php
strtolower($slowo);

zapytanie = "SELECT * FROM news WHERE tresc LIKE '%".$slowo."%' ORDER BY id DESC";
$wykonaj = mysql_query($zapytanie);
?>[/php][/php]
no ale to przeciez nic nie da. nadal jak wpisze "oko", to slowa "Oko" nie znajdzie... co wiecej - w takim wypadku "Oko" bedzie nie do znalezienia...
yarpo
Nowy
Nowy
Posty: 168
Rejestracja: wt lut 08, 2005 6:29 pm
Lokalizacja: Gdańsk
Kontakt:

Re: wyszukiwarka

Post autor: yarpo »

W taki mrazie nie wiem jak Ci pomóc. Poszukaj coś w SQL - musi być tu możliwość wyłączenia rozpoznawania wielkości lier.
yarpo
Nowy
Nowy
Posty: 168
Rejestracja: wt lut 08, 2005 6:29 pm
Lokalizacja: Gdańsk
Kontakt:

Re: wyszukiwarka

Post autor: yarpo »

Nie potrafię ci pomóc, ale może znajdziesz co potrzebujesz w tym kursie SQLa:

http://db.tigra-system.pl/art.php?id=9
Panczo
Nowy
Nowy
Posty: 42
Rejestracja: śr lip 09, 2003 11:37 pm
Lokalizacja: Sosnowiec

Re: wyszukiwarka

Post autor: Panczo »

Więc może tak, nie wiem czy to przejdzie na MySQL bo nie mam ale MSSQL to umozliwia:

[php]<?php
strtolower($slowo);

zapytanie = "SELECT * FROM news WHERE LOWER(tresc) LIKE '%".$slowo."%' ORDER BY id DESC";
$wykonaj = mysql_query($zapytanie);
?>[/php]
TakiJakis
Nowy
Nowy
Posty: 22
Rejestracja: ndz paź 24, 2004 1:40 pm

Re: wyszukiwarka

Post autor: TakiJakis »

dziala. dzieki yarpo i Panczo.

kolejny problem: robilem tak, aby tekst szukany byl zaznaczany na czerwono:

Kod: Zaznacz cały

$wiersz['tresc']=str_replace($slowo,"<font color=red>".$slowo."</font>",$wiersz['tresc']);
teraz jak zrobic, aby tekst byl zaznaczony niezaleznie od wielkosci liter szukanego slowa?
ODPOWIEDZ