Autor | Zpráva | ||
---|---|---|---|
Lopyn Profil |
#1 · Zasláno: 4. 9. 2007, 23:11:42
čau. můžu se prosím zeptat jak mám indexovat sloupec pomocí fce FULLTEXT. zkušel sem to dát do zdroje, což mi nebralo jako fci a sql dotaz mi taky nešel . díky
|
||
svadla Profil |
#2 · Zasláno: 4. 9. 2007, 23:20:40
Lopyn
treba v phpmyadminu do sql zadas ALTER TABLE nejaka_tabulka ADD FULLTEXT vsechno(sloupec1, sloupec2, sloupec3, ...); nejaka_tabulka musi byt typu myisam |
||
Lopyn Profil |
#3 · Zasláno: 4. 9. 2007, 23:26:33
jj jasný dik. moc
|
||
Lopyn Profil |
#4 · Zasláno: 4. 9. 2007, 23:34:18
tohle jsem napsal přes phpmyadmina a furt nic
ALTER TABLE cislaobsah ADD FULLTEXT (text,nadpis); mam to blbě nebo je chyba jinde? |
||
svadla Profil |
#5 · Zasláno: 5. 9. 2007, 01:36:36
Lopyn
ti to muselo napsat nejaky error ne? pokud ne tak to asi jde i tak, ale ja bych to radsi napsal ALTER TABLE cislaobsah ADD FULLTEXT obsah_fulltext(text,nadpis); |
||
Lopyn Profil |
#6 · Zasláno: 5. 9. 2007, 09:47:16
no píše mi to index ve sloupci nebyl nalezen
|
||
Lopyn Profil |
#7 · Zasláno: 5. 9. 2007, 10:06:03
newim proč to nejde. ale mám pls ještě jednu otázku? co znamená to obsah_fulltext? to je to podle čeho pak řadim... as obsah_fulltext ?nebo proč to tamje?
|
||
Lopyn Profil |
$dotaz = mysql_query ("ALTER TABLE cislaobsah ADD FULLTEXT serad (nadpis,text)"); $sql = ("select *, MATCH (text) AGAINST ('$_GET[search_query]') as serad cislaobsah WHERE MATCH(nadpis) AGAINST ('$_GET[search_query]' IN BOOLEAN MODE) or MATCH(text) AGAINST ('$_GET[search_query]' IN BOOLEAN MODE) order by serad desc"); $vysledek1=mysql_query($sql)or die(mysql_error()); tohle přesně píšu a nejde mi to… jmeno tabulky … cislaobsah a sloupce nadpis a text… |
||
svadla Profil |
$dotaz = mysql_query ("ALTER TABLE cislaobsah ADD FULLTEXT serad (nadpis,text)");
toto staci nad databazi provest jen jednou, tim se vytvori index serad $hledame = "hledane slovo"; dotaz pak v tvem pripade muze vypadat nejak takto: SELECT * FROM cislaobsah WHERE MATCH(nadpis) AGAINST ('$hledame' IN BOOLEAN MODE) OR MATCH(text) AGAINST ('$hledame' IN BOOLEAN MODE) pri razeni muzes treba davat vetsi prioritu nadpisu, tim ze pridas ORDER BY 5 * MATCH(nadpis) AGAINST ('$hledame') + MATCH(text) AGAINST ('$hledame') kdyby neco, napis |
||
Lopyn Profil |
#10 · Zasláno: 5. 9. 2007, 15:40:04
ok zkusim to. mám to ten první dotaz protože mi to píše že ji ještě nevytvořil, pak to vymažu
|
||
Lopyn Profil |
#11 · Zasláno: 5. 9. 2007, 17:05:19
no tak ted se mi konečně porařilo vytvořit ten index, ale furt mi to píše že není. Ale v phpmyadminovi ho mám...pls rada
|
||
svadla Profil |
#12 · Zasláno: 5. 9. 2007, 17:40:26
Lopyn
napis presne co a kde ti to pise |
||
Lopyn Profil |
#13 · Zasláno: 5. 9. 2007, 20:14:30
Can't find FULLTEXT index matching the column list. myslim si, že to je protože tam neni nikde napsany to serad. to "magický" slvo který už mě pěkně sere:D
|
||
svadla Profil |
#14 · Zasláno: 6. 9. 2007, 01:11:58
Lopyn
fakt to tam nikde byt napsane nema, pouzivam to taky tak jedine zkus ten index vytvorit znova... nemas tu databazi online? mrknul bych ti na to |
||
Časová prodleva: 2 roky
|
|||
Anonym Profil * |
#15 · Zasláno: 11. 10. 2009, 13:06:25
Mám stejný problém. Mám tabulku porovnani3 a vni sloupce nadpis, uvod a text. Vytvořil jsem Fulltext index takto ALTER TABLE porovnani3 ADD FULLTEXT (nadpis,uvod,text).
A po této části kódu mi to vypíše stejnou chybu jako kolegovi Can't find FULLTEXT index matching the column list $sql4 = "SELECT * FROM porovnani3 WHERE MATCH(nadpis,uvod,text) AGAINST('pustil')"; $result = mysqli_query($connection, $sql4); echo mysqli_error($connection); Kde je chyba prosím? |
||
Anonym Profil * |
#16 · Zasláno: 11. 10. 2009, 13:23:43
Fulltext index jsem napsal takto ALTER TABLE porovnani3 ADD FULLTEXT vyhledavani (nadpis,uvod,text)
|
||
Anonym Profil * |
#17 · Zasláno: 11. 10. 2009, 14:44:55
Ještě to trochu rozepíšu (už jsem z toho blázen...stále to zkouším a stále to nejde :-()
Vytvořil jsem tabulku: CREATE TABLE porovnani3 ( id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT, nadpis VARCHAR(50) NOT NULL, uvod VARCHAR(500) NOT NULL, text VARCHAR(2000) NOT NULL ) Dále jsem na ní aplikoval: ALTER TABLE porovnani3 ADD FULLTEXT (nadpis,uvod,text); Vložil do ní data. Zde je zdrojový kód: $server = ""; $user = ""; $password = ""; $database = ""; @$connection = mysqli_connect($server, $user, $password, $database); / if (!$connection) { echo "Chyba: " . mysqli_connect_error(); exit; } $sql4 = "SELECT uvod FROM porovnani3 WHERE MATCH(uvod) AGAINST('podpis')"; $result = mysqli_query($connection, $sql4); echo mysqli_error($connection); while ($row = mysqli_fetch_assoc($result)) { ?> <p><?php echo $row['nadpis']; ?></p> <p><?php echo $row['uvod']; ?></p> <p><?php echo $row['text']; ?></p> <?php } Výsledkem je hláška: Can't find FULLTEXT index matching the column list Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in Moc Vás prosím o pomoc. Díky |
||
Anonym Profil * |
#18 · Zasláno: 12. 10. 2009, 13:37:34
Prosím prosím
|
||
tiso Profil |
|||
Anonym Profil * |
#20 · Zasláno: 12. 10. 2009, 16:54:14
tiso
Právě že jsem zkoušel obojí a bezúspěšně. Chtěl bych vyhledávat ve všech sloupích (to už jsem také zkoušel...) Zkusil jsem toto a výsledkem je prázdná obrazovka, přitom sloupec text obsahuje slovo "nulu". Vytvořil jsem tabulku: CREATE TABLE porovnani3 ( id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT, nadpis VARCHAR(50) NOT NULL, uvod VARCHAR(500) NOT NULL, text VARCHAR(2000) NOT NULL ) Dále jsem na ní aplikoval: ALTER TABLE porovnani3 ADD FULLTEXT (nadpis,uvod,text); Vložil do ní data. Zde je zdrojový kód: $server = ""; $user = ""; $password = ""; $database = ""; @$connection = mysqli_connect($server, $user, $password, $database); if (!$connection) { echo "Chyba: " . mysqli_connect_error(); exit; } $sql4 = "SELECT * FROM porovnani3 WHERE MATCH(nadpis,uvod,text) AGAINST('nulu')"; $result = mysqli_query($connection, $sql4); echo mysqli_error($connection); while ($row = mysqli_fetch_assoc($result)) { ?> <p><?php echo $row['nadpis']; ?></p> <p><?php echo $row['uvod']; ?></p> <p><?php echo $row['text']; ?></p> <?php } |
||
tiso Profil |
#21 · Zasláno: 12. 10. 2009, 17:06:31
Anonym ďalšia vec: text je vyhradené slovo, buď použi iné, alebo ho vždy píš so spätnými apostrofmi `text`
|
||
Anonym Profil * |
#22 · Zasláno: 12. 10. 2009, 17:08:30
tiso
aha, tzn, nedávat do tabulky sloupec s názvem text? |
||
Anonym Profil * |
#23 · Zasláno: 12. 10. 2009, 17:13:42
tiso
Tak bohužel ani to nepomohlo, stále to nic nezobrazí CREATE TABLE porovnani3 ( id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT, nadpis VARCHAR(50) NOT NULL, uvod VARCHAR(500) NOT NULL, clanek VARCHAR(2000) NOT NULL ) ALTER TABLE porovnani3 ADD FULLTEXT (nadpis,uvod,clanek); |
||
Anonym Profil * |
#24 · Zasláno: 13. 10. 2009, 13:04:00
Co prosim Vas delam spatne? To tu neni nikdo kdo pouziva fulltext?
|
||
nightfish Profil |
#25 · Zasláno: 13. 10. 2009, 13:08:14 · Upravil/a: nightfish
zkus
ALTER TABLE porovnani3 ADD FULLTEXT (nadpis); ALTER TABLE porovnani3 ADD FULLTEXT (uvod); ALTER TABLE porovnani3 ADD FULLTEXT (clanek); EDIT: a nebo si je prostě naklikej v phpMyAdminu ...a ještě připomínám, že fulltext index funguje jenom na tabulkách typu myisam |
||
Anonym Profil * |
#26 · Zasláno: 13. 10. 2009, 14:21:26
„zkus
ALTER TABLE porovnani3 ADD FULLTEXT (nadpis); ALTER TABLE porovnani3 ADD FULLTEXT (uvod); ALTER TABLE porovnani3 ADD FULLTEXT (clanek);“ Po provedení tohoto mi vypíše: Can't find FULLTEXT index matching the column list Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in „fulltext index funguje jenom na tabulkách typu myisam“ Jak zjistím typ mých tabulek? Jedná se o databazi MySQL (5-4) |
||
tiso Profil |
#27 · Zasláno: 14. 10. 2009, 00:39:19
[#24] Anonym je, ale zle sa s tebou komunikuje, takže ja som to už vzdal...
|
||
Časová prodleva: 11 měsíců
|
|||
Veru Profil * |
#28 · Zasláno: 2. 9. 2010, 12:47:59
mě se teda s tim fulltextem stalo něco podobnýho. Problém byl v tom, že mysql prostě nějak nezvládalo 1 fultext index na víc sloupců současně. Vytvořila jsem tedy víc indexů a fungovalo to.
|
||
AM_ Profil |
#29 · Zasláno: 2. 9. 2010, 12:56:48
Veru:
Vřele ti děkujeme za příspěvek, ale ten pán to za ty tři roky asi vyřešil. A já mám teď chuť ti ublížit, protože jsem kvůli tobě přečetl přes deset příspěvků, než jsem si všiml, že vlákno je z roku 2007. |
||
Časová prodleva: 14 let
|
0