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?