Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Fulltextové vyhledávání

Aktivity
Avatar
Karlos
Člen
Avatar
Karlos:4.1.2014 20:10

Ahoj
Chci se zeptat jestli někdo neumí udělat fulltextové vyhledávání. Našel jsem spoustu návodů ale ani jeden mi nefungoval a psal error.
Zkusil jsem si to napsat sám a dopadlo to takhle:

SELECT * FROM tabulka WHERE MATCH(`jménosloupcu`) AGAINST ('".$Text."')

Bude to fungovat typem fulltextového vyhledání?? Tím tedy myslím napíšu "aho" a vyhledá to slovo kde je "aho" a vypíše to celý řádek kde bylo slovo nalezený. Moc díky všem za radu a vše co napíšou.

 
Odpovědět
4.1.2014 20:10
Avatar
done
Člen
Avatar
Odpovídá na Karlos
done:4.1.2014 20:15

Nejsem si jistý jestli je to dobře, ale takhle by to mohlo fungovat:

SELECT * FROM `tabulka` WHERE `nazev` LIKE %$text%
 
Nahoru Odpovědět
4.1.2014 20:15
Avatar
Karlos
Člen
Avatar
Odpovídá na done
Karlos:4.1.2014 20:25

Díky zkusím to :-)

 
Nahoru Odpovědět
4.1.2014 20:25
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Karlos
Kit:4.1.2014 20:52
SELECT * FROM `tabulka` WHERE MATCH(`titulek`, `clanek`) AGAINST('slovo');
Nahoru Odpovědět
4.1.2014 20:52
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Karlos
Člen
Avatar
Odpovídá na Kit
Karlos:4.1.2014 21:32

Moc se v PHP nevyznám je toto správně ?? Píše mi to varování.
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in index.php on line 4

 <?php
$vysledek=mysql_query("SELECT * FROM `new` WHERE MATCH(`jmeno`, `text`) AGAINST('$text')");
       $text = AddSlashes($_POST['word']);
      while (MySQL_Fetch_Array($vysledek)){
        echo "Vyhledáno";
      }
 ?>
 
Nahoru Odpovědět
4.1.2014 21:32
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Karlos
Kit:4.1.2014 21:37

Pro příznivce mých skriptů:
http://www.itnetwork.cz/dev-lighter/277

K čemu tam máš tu funkci AddSlashes()? Ta se přece už dávno nepoužívá, protože není bezpečná.

Nahoru Odpovědět
4.1.2014 21:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Karlos
Člen
Avatar
Odpovídá na Kit
Karlos:4.1.2014 21:41

Moc díky za kód a toto přidává do tabulky v databázi ??

$insert->execute(array('Muži', 'Franta, Pavel, Jindra a Josef'));
 
Nahoru Odpovědět
4.1.2014 21:41
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Karlos
Kit:4.1.2014 21:42

Ano. Nemusíš ty stringy nijak ošetřovat. Je to bezpečné ukládání. Klidně i takto:

$insert->execute(array($_POST['titulek'], $_POST['clanek']));
Editováno 4.1.2014 21:44
Nahoru Odpovědět
4.1.2014 21:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Karlos
Člen
Avatar
Odpovídá na Kit
Karlos:4.1.2014 21:44

Moc díky za všechno :-)

 
Nahoru Odpovědět
4.1.2014 21:44
Avatar
Odpovídá na Kit
Uživatel sítě :4.1.2014 22:16

Není to nebezpečné pouze v případě když je zapnuto magic_quotes_gpc?

addslashes používá php-fusion třeba stále, ale možná pouze pro administrační používání kvůli php skriptům přímo v novinkách.

Ještě myslím, že to je nevhodné protože to potom znehodnocovalo text když už před ošetřením obsahoval např. \'..

Nahoru Odpovědět
4.1.2014 22:16
Chybami se člověk učí, běžte se učit jinam!
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Uživatel sítě
Kit:4.1.2014 22:18

magic_quotes by mělo být standardně vypnuto. Je to zvěrstvo, které nesmyslně przní vstupní text.

Nahoru Odpovědět
4.1.2014 22:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Uživatel sítě
Kit:4.1.2014 22:26

V PHP 5.4 už magic_quotes_gpc naštěstí bylo zrušeno.

Nahoru Odpovědět
4.1.2014 22:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Uživatel sítě :5.1.2014 0:08

Také jsem si to četl.. :)

Nahoru Odpovědět
5.1.2014 0:08
Chybami se člověk učí, běžte se učit jinam!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.