Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] czemu szukarka nie szuka polaczen wyrazow
Forum PHP.pl > Forum > PHP
AndyPSV
CZYLI np. wpisuje: "money earning" i nic nie znajduje, znajduje tylko z pojedynczymi frazami, tu jest wyszukiwarka mozna stestowac: http://path-of-power.com/ (prawy gorny rog)

A SQL wyrazenie, ktore mam wyglada tak:

  1. <?php
  2.  
  3.  
  4. [b]if(empty($_GET[1]) or $_GET[1] == '?search=search') header(LOC.URL); $GET = substr($_GET[1],8);
  5. $q = q('SELECT id,t FROM `'.PRFX.'knowledge` WHERE text LIKE "%'.$GET.'%" or t LIKE "%'.$GET.'%" ORDER BY id DESC'); if(n_r($q) > 0)
  6. while($r = f($q)) { $r['t_'] = _url($r['t']); $r['date'] = substr($r['date'],0,16); $_r[] = $r; } $this->tpl->assign('r',$_r);
  7. [/b]
  8. ?>



p.s. nie trzeba czasem dac pomiedzy " " (spacje) wstawic plus (+) ?
str_replace(" ","+",$GET)?
tehaha
poczytaj sobie o wyszukiwaniu pełnotekstowym
AndyPSV
  1. $q = q('SELECT *, MATCH(t,text) AGAINST ("'.$GET.'") AS score FROM `'.PRFX.'knowledge` WHERE MATCH(t,text) AGAINST ("'.$GET.'") ORDER BY score DESC'); if(n_r($q) > 0)


nie dziala ;/
co zrobic


SQL, line 11 :: Can't find FULLTEXT index matching the column list

zawsze mam to, pomocy


----------


t,text jako fulltext trzeba bylo zrobic




NAPISALEM ARTYKUL o szukaniu: http://path-of-power.com/fulltext-search-sql-fulltext,138

ostatnie pytanie: czemu mi widzi ZAWSZE 2 wyniki?
http://path-of-power.com/search/?search=dsadsadsadsadsa

jak temu zaradzic?
tehaha
żeby wyszukiwanie pełnotekstowe działało to musisz w phpMyAdmin tej kolumnie ustawić fulltext , jak masz tam te ikonki "primary key", unique key to ostatnia jest taka z T , kliknij ją i powinno już działać, aaa teraz doczytałem że już to zrobiłeś....

a pokaż kod jakim to wyświetlasz, bo rzeczywiście trochę dziwne, że cokolwiek wpiszesz to zawsze te 2 wyniki
AndyPSV
  1. <?php
  2.  
  3. class search extends PAGE {
  4. function i() {
  5. if(empty($_GET[1]) or $_GET[1] == '?search=search') header(LOC.URL); $GET = substr($_GET[1],8); $GET = str_replace(" ","+",$GET);
  6. $q = q('SELECT id,t,MATCH(t,text) AGAINST(\'+('.$GET.') IN BOOLEAN MODE\') AS score FROM `'.PRFX.'knowledge` WHERE MATCH(t,text) AGAINST (\'+('.$GET.') IN BOOLEAN MODE\') ORDER BY score DESC'); if(n_r($q) > 0)
  7. while($r = f($q)) { $r['t_'] = _url($r['t']); $r['date'] = substr($r['date'],0,16); $_r[] = $r; } $this->tpl->assign('r',$_r);
  8.  
  9. $this->_t = PG_T.' '.__CLASS__; $this->_c = $this->tpl->fetch(PG_TPL.'_'.N.INX.HTML); $this->run();
  10. }
  11. } $n = 'search'; $C = new $n($n); $C->i();
  12.  
  13. ?>



caly kod,

chodzi tylko o to: $q = q('SELECT id,t,MATCH(t,text) AGAINST(\'+('.$GET.') IN BOOLEAN MODE\') AS score FROM `'.PRFX.'knowledge` WHERE MATCH(t,text) AGAINST (\'+('.$GET.') IN BOOLEAN MODE\') ORDER BY score DESC');

I zawsze zwraca 2 wyniki? Dlaczego?
Co zrobic?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.