Autor Zpráva
JeremyCB
Profil
mam nekolik tabulek kde bych potreboval vyhledat klicova slova kazda s techto tabulek ma:
nazev , nazev2, popis a vlastnosti (delsi texty) snazil jsem se udelat nejaky skriptik alespon na jednu tabulku:

<?
$search = $_POST['search'];
if($search != "" && $search != " ")
{
$result = mysql_query("SELECT nazev, nazev2, popis FROM kury WHERE (nazev LIKE '%$search%') OR (nazev2 LIKE '%$search%') OR (popis LIKE '%$search%')");
$delka = mysql_numrows($result);
if($delka > 0)
{
echo "<div class=\"normal\">Hledám slovo \"$search\"</div><br>";
echo "<div class=\"normal\">Počet nalezených záznamů: $delka</div><br><br>";
for($i=0; $i<$delka; $i++)
{
$nazev = mysql_result($result, $i, "nazev");
$nezev2 = mysql_result($result, $i, "nazev2");
$popis = mysql_result($result, $i, "popis");
echo "<div><a href=\"\">$nazev</a></div>";
echo "<div><a href=\"\">$nazev2</a></div>";
echo "<div><a href=\"\">$popis</a></div>";
}
}
}
else
{
echo"nebylo zadane zadne slovo";
}
?>

a kdyz vypisuji ten popis tak mi to vyhodi celej ten clanek a ne jen odkaz na ten clanek kde cse to slovo nachazi

mohl by jste mi nekdo poraditi jak to udelat tak jak bych potreboval

dekuji
Kajman_
Profil *
No, vypisuješ popis, tak tam máš celý popis. Jestli tam má byt jen odkaz, tak prostě popis nevypisuj.

V MySQL lze použít fulltextový index, který dává rychlejší výsledky než like.
http://dev.mysql.com/doc/refman/4.1/en/fulltext-search.html
JeremyCB
Profil
To uz jsem take zkousel ale je tam zase problem s cestinou. Rychlejsi to sice je ale zase je tam problem s indexy
Kajman_
Profil *
Já to používám na jednom webu na mysql 4.1 a problémy s češtinou neshledávám. Problém s indexy také nemám. Jen tam nejsou zahrnutá krátká slova.

Ještě jsem si upravil řazení, že se zohledňuje třeba i stáří článku a počet přečtení.
JeremyCB
Profil
Ok dik
JeremyCB
Profil
Vzhledem k tomu, ze se zrejme bude jednat o malou databazi (do 100 000 zaznamu), tak bych to vubec neresil...
Pokud by to bylo rozsahlejsi, tak urcite pouzijte ty fulltextove funkce. Ten LIKE je spis na nejake substringy, protoze umoznuje vyhledavat i podle ruznych fragmentu vyrazu. Takze pokud chcete vyhledavat v nejakych rozsahlejsich textech, tak ten fulltext,pokud treba jen v nazvech, tak LIKE.

pokud by nekdo mohl poskytnout nejake informace jak by se dal tento problem vyresit byl bych rad koukal jsem ze mraky lidi shledlo toto tema a myslim si ze zrova toto tema neni nikde dostatecne popsane a vysvetlene tak budte prosim ochotni a prispejte nejakymi linky, prispevky, priklady

dekuji vsem
Anonymní
Profil *
Fulltext funguje celkem i s češtinou, vyhledávám v BOOLEAN MODE, lze využívat AND, OR, hledat přesně a (*).
Jen je potřeba mít nastavené porovnávání na latin2_general_ci (ne latin2_czech_cs) pokud chcete aby našel čaj == ČaJ
Kajman_
Profil *
koukal jsem ze mraky lidi shledlo toto tema
Ani né tak mraky lidí... spíš nějaké ťululum poslalo na tuhle adresu kontrolovaciho robota.

prispejte nejakymi linky
http://www.linuxsoft.cz/article.php?id_article=952
http://www.linuxsoft.cz/article.php?id_article=960
http://www.root.cz/clanky/princip-jednoducheho-fulltextu-1/
Anonymní
Profil *
Fulltext http://interval.cz/clanek.asp?article=3127
Toto téma je uzamčeno. Odpověď nelze zaslat.

0