Strona 1 z 1
wyszukiwarka
: czw lut 10, 2005 2:37 pm
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?
Re: wyszukiwarka
: czw lut 10, 2005 2:53 pm
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]
Re: wyszukiwarka
: czw lut 10, 2005 2:58 pm
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 ]
Re: wyszukiwarka
: czw lut 10, 2005 5:08 pm
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...
Re: wyszukiwarka
: czw lut 10, 2005 5:41 pm
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.
Re: wyszukiwarka
: czw lut 10, 2005 5:47 pm
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
Re: wyszukiwarka
: czw lut 10, 2005 6:39 pm
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]
Re: wyszukiwarka
: czw lut 10, 2005 7:27 pm
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?