Pretraživač ???

1

Pretraživač ???

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

Pokušavam da napravim pretraživač, koristim podatke iz jedne knjige u kojoj to nije objašnjeno. Napravio sam mysql bazu u njoj tabelu sa kolonama title, url, keywords. Postoji i fajl index.html u kojiem je forma za unošenje upita i search.php fajl koji obrađuje podatke.

Sve je to u redu, nekoliko redova sam unio u kolonu i pokušao pretraživanje. Povezivanje na bazu je uspelo i čitanje podataka iz nje, ali imam jedan problem. Ako je npr u bazi podataka u polje keywords unešeno ime prezime, a ja pretražujem prezime ime, nema rezultata. Znači moram uneti tačno onim redom koji je upisan u bazi, naravno ne celi teks koji se nalazi u keywords. I to mi predstavlja problem jer ako unesem samo jedno slovo koje se pojavljuje u keywords, ja dobijem rezultate.

Za poređenje u search.php sam koristio like jer piše da daje veću slobodu od =, što je i logično.

Moje je pitanje: Mogu li da koristim nešto drugo za poređenje, ili moram da dodatno obrađujem podatke koji se unose u upit?

Jasno je da mogu da izvršim pretraživanje za svaku reč koja se nalazi u upitu, ali mi se čini da bi mi to sve iskomplikovalo.

Malo duže pitanje, nadam se da i odgovori neće biti isti.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

resenje ti je da uradis search za svaku rec, pa onda da 'spojis' rezultate svih pretraga, i da ih poredjas tako da prvo idu rezultati koje sadrze sve reci...
tako rade pretrazivaci Wink



offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

To mi je prvo palo na pamet, ali kako da odredim broj reči i kako da uzmem reč po reč iz čitavog upita, Može li neko staviti malo koda ili još bolje ima li ko skriptu koja radi, ja sam je pokušao naći na web-u ali nema je. Ako neko ima skriptu ili zna link na kojem je mogu naći neko postuje,a ja ću već bazu praviti sam.

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

moraces sam da napises petlju, koja trazi blanko i odvaja rec po rec...

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

To mi je jasno. Našao sam u knjizi to što mi treba, koristim taj primer, ali nema razultata. Jednostavno nema kraja petlji, procesor je zauzet 100%, a u status bar liniji piše waiting for localhost.

$key = strtok($search, ' ');    echo $key;    while($key!=' ')    {    $key = strtok(' ');    echo $key;    }

echo sam postavio samo da proverim da li kod radi i da li to može ovako. Do petlje je sve u redu, znači ako nju obrišem daje mi prvu reč.

Dopuna: 26 Feb 2005 18:31

Evo našao sam problem

while($key!='')

nema blanka među navodnicima.

Sada me interesuje koji operator da koristim jer sa like ako otkucam samo jedno slovo i njime pretražujem, vraća mi sve rezultate koji u keywords sadrže to slovo.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

Balkanac ::Sada me interesuje koji operator da koristim jer sa like ako otkucam samo jedno slovo i njime pretražujem, vraća mi sve rezultate koji u keywords sadrže to slovo.
samo nastavi da koristis LIKE jer tako i trebas da dobijes rezultate, evo npr probaj na google-u da otkucas slovo a i dobices "about 8,000,000,000 for a"

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

for ($j=0; $j<$i; $j++) {   $query =  "select * from podaci where ". keywords." like '%".$keyword[j]."%'";   $result = mysql_query($query);   $num_results = mysql_num_rows($result);   // i sve ostalo, gde uzimas podatke }

ovo //ostalo, tu trebas da podatke smestis u niz... i da kasnije uporedjujes dobijene nizove, i da u prvi plan stavis rezultat koji se pojavljuje u vecini nizova [to jest u vecini pretraga]

dakle, uradis pretragu za svaku rec, i onda u prvi plan izbacis onaj rezultat koji sadrzi sve [ili najvise] trazenih reci.

offline
  • Pridružio: 20 Dec 2004
  • Poruke: 2887
  • Gde živiš: Na Balkanu

To je to, hvala ti. Odgovorio si mi i na pitanje koje sam sledeće hteo da postavim, tj kako da odaberem onaj rezultat u kojem se pojavljuju svi ili većina rezultata i prikažem ga prvog.

Sad me samo interesuje kako da napravim da mi se po stranici prikazuje samo određeni broj rezultata, na primer 20. Ovde se ispisuju svi rezultati. Nije mi problem da to napravim za prvu stranicu, ali kako da to napravim za ostale. U glavi mi se vrti ideja da napravim link next page i preko url pošaljem podatak o kojoj se stranici radi.

Ja koristim jednu knjigu i podatke koje sam koristio uzimam iz primera elektronske prodavnice, gde ima pretraživač proizvoda, ali sve proizvode prikazuje na jednoj strani. Odgovor na postavljeno pitanje bi mi mnogo značio ne toliko radi pretraživača, već radi sistema na koji se to radi. Verovatno će mi to posle negde trebati.

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

hmmm... onda bi rezultate nizova morao da sacuvas negde u bazi... ili da uvek iznova vrsis pretragu, prikazivajuci drugih 10 niza [a prva 10 preskocis], recimo...

Ko je trenutno na forumu
 

Ukupno su 798 korisnika na forumu :: 8 registrovanih, 2 sakrivenih i 788 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: amaterSRB, Dorcolac, goxin, MaksicZoran, sasa76, Shilok, Srki94, voja64