Autor | Zpráva | ||
---|---|---|---|
Začátečník Profil * |
#1 · Zasláno: 23. 2. 2007, 22:18:45
Ahoj mam formular kde zadam hledany vyraz a pomoci tohohle sriptu ho chci najit
<?php $link = mysql_connect("localhost", "root", "") or die ("Nepovedlo se připojit na databázový server"); $db = mysql_select_db("db", $link) or die ("Nepovedlo se otevřít databázy"); $vysledek = mysql_query("select nazev from tabulka where MATCH(nazev) against ('".$_REQUEST['search']."')"); while ($data = mysql_fetch_array($vysledek)) { echo " <table> <tr> <td id='jmeno'>".$data['nazev']."</td> </tr> </table>"; } ?> vse funguje le jakmile chci za Match pridat jeste jeden sloupec: $vysledek = mysql_query("select nazev from baterie where MATCH(nazev, popisek) against ('".$_REQUEST['search']."')"); tak mi to hlasi chybu na tomhle radku while ($data = mysql_fetch_array($vysledek)): Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:devwwwzpracuj.php on line 42 nevite nevite co tam mam spatne? |
||
Kajman_ Profil * |
#2 · Zasláno: 23. 2. 2007, 23:19:08
Asi není fulltextový index na obou sloupečcích.
|
||
Začátečník Profil * |
#3 · Zasláno: 24. 2. 2007, 08:02:34
To jsem zkousel mam ho na obou na kazdym zvlast a nebo ma byt nejaky spolecny?
|
||
Začátečník Profil * |
#4 · Zasláno: 24. 2. 2007, 08:12:29
Kdyz tam mam jenom jeden tak to funguje a je jedno ktery tam je ale jak jsou dva nebo tri tak to hlasi tu chybu
|
||
Začátečník Profil * |
#5 · Zasláno: 24. 2. 2007, 08:50:34
Tak asi je chyba opravdu v indexech kdyz napisu: echo mysql_error() ; tak mi vyjede:
Can't find FULLTEXT index matching the column list, ale kdyz se podivam do databaze a do tabulky tak vydim ze na tech sloupcich co pouzivam fultext mam aspon myslim. Toto je ukazka z PhpMyAdmin Klíčový název Typ Mohutnost Akce Sloupec PRIMARY PRIMARY 62 id kategorie INDEX Žádná druh kod_zbozi INDEX Žádná kod_zbozi kategorie_2 INDEX Žádná kategorie nazev FULLTEXT Žádná nazev kod_zbozi_2 FULLTEXT Žádná kod_zbozi popisek FULLTEXT Žádná popisek |
||
Začátečník Profil * |
#6 · Zasláno: 24. 2. 2007, 09:05:03
Tak uz sem na to prisel stacilo zadat fultext najednou na vsechny sloupce ted jenom jeste jeden dotaz:
Ve sloupci kod_zbozi mam treba toto: PR 108 nebo PR 108/K ci PR 3115/S a kdyz to same dam hledat tak to nenajde, cisla a slova to nachazi v pohode. Je chyba nekde v nastaveni a nebo toto neumi hledat? |
||
Kajman_ Profil * |
#7 · Zasláno: 24. 2. 2007, 10:33:32
Tipnul by, že to bude tím, že indexovaný fulltext nebere v potaz slova do určité délky. Záleží na nastavení serveru, většinou až od délky 4.
|
||
Začátečník Profil * |
#8 · Zasláno: 24. 2. 2007, 11:00:35
Tak to porad zkousim a treba kdyz zadam 3115 tak to najde ale treba PR 108 nenajde nic takze v delce asi problem neni.
|
||
Kajman_ Profil * |
#9 · Zasláno: 24. 2. 2007, 21:17:28
pr 108 jsou dvě slova. Ani jedno není delší než tři znaky.
|
||
Začátečník Profil * |
#10 · Zasláno: 24. 2. 2007, 22:05:45
A jeste jedna vec vyhledavam ve sloupci kategorie, kde mam ruzne jednoslovne nazvy vetsi nez 4 pismena a vyhleda mi to treba kategorii doplnky ale kategorii baterie ne? Tak to uz vubec nevim proc to nejede...
|
||
Začátečník Profil * |
#11 · Zasláno: 24. 2. 2007, 22:18:01
Tak sem prohledaval web a nasel tuto vetu:
Pokud se některé slovo vyskytuje ve více jak polovině prohledávaných zánamů, tak ho databáze ignoruje. Ruzumim tomu dobre kdyz mam tedy sloupec kategorie rozdelen na tri polozky z nichz jedna obsahuje vic jak polovinu vsech zaznamu tak mi tuto kategorii fulltext nenajde? A jestli ano jde to nejak obejit? |
||
Kajman_ Profil * |
#12 · Zasláno: 25. 2. 2007, 18:37:09
Můžete zkusit nepoužít index ale BOOLEAN MODE viz.
http://dev.mysql.com/doc/refman/4.1/en/fulltext-boolean.html |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0