Ako z databázy mysql vypísať podobné záznamy – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako z databázy mysql vypísať podobné záznamy – PHP – Fórum – Programujte.comAko z databázy mysql vypísať podobné záznamy – PHP – Fórum – Programujte.com

 

juraj1750
Návštěvník
5. 2. 2018   #1
-
0
-

Zdravím
Ako z databázy mysql vypísať podobné záznamy?
Používam tento príkaz

$sqle = " SELECT id,name FROM title  WHERE MATCH(name) AGAINST('$search' )";

Ak do inputu search zadám slovo Šmolkovia tak mi vypíše tieto záznamy
Purpuroví Šmolkovia - Šmolkovia
Šmolkovia
ale záznam Epizódy Šmolkov už nevypíše
ďakujem za rady

Nahlásit jako SPAM
IP: 88.212.36.–
ondrej39+1
Věrný člen
8. 2. 2018   #2
-
0
-

#1 juraj175
Obavam se, ze na neco takoveho, co pozadujes, je MySQL spatny nastroj.

Matchovani v MySQL v prezentovanem prikladu funguje tak, ze se vezme uzivatelsky vstup, ten je Šmolkovia, a najdou se v databazi zaznamy, ktere dany uzivatelsky vstup obsahuji (obsahovat znamena vyskyt stejneho reteze, maximalne s drobnymi upravami, jako je napriklad odstraneni porovnani diakritiky).

To bohuzel vede k tomu, ze pokud hledany vyraz neni pseudo-stejny, tzn. v databazi bys mel napriklad Šmolkovio namisto Šmolkovia, pak zaznam nebude oznacen jako nalezen. To se vicemene stalo u zaznamu Epizódy Šmolkov, kdy ten zaznam realne vyraz Šmolkovia opravdu neobsahuje.

Pokud bys chtel takove napovidani s vazenym zpracovanim vysledku, pak se budes muset asi podivat napriklad na Elasticsearch s pouzitim vhodneho filteru a matcheru.

Nahlásit jako SPAM
IP: 85.93.97.–
Inject all the dependencies!
peter
~ Anonymní uživatel
4002 příspěvků
9. 2. 2018   #3
-
0
-

Bych napsal podobne jako ondrej, ale nebyl jsem si jisty, zda to nejak neni.

Da se to resit klicovymi slovy. Udelas si tabulku, kde id radku propojis se slovem smolkovia. A pridas tam dalsi varianty toho slova a propojis na smolkovia.

Da se vyhledavat pri psani nebo zkusit odmazavat posledni pismenka a vysledkum dat nizsi prioritu.

SELECT DISTINCT * FROM (
SELECT id, 5 as priority... Šmolkovia ... UNION
SELECT id, 4 as priority... Šmolkovi ... UNION
SELECT id, 3 as priority... Šmolkov ... UNION
SELECT id, 2 as priority... Šmolko ..
) ORDER BY priority DESC, name ASC

Kratsi slovo ziskat v php treba pomoci substr. Pripadne to muzes dat do toho AGAINST jako dalsi slovo. Ale pak neas prioritu a horsi vyrazy muzou byt topovane. Pripadne by slo dat do match Šmolk% a pak bys to vytridil podle shody, cele slovo, priorita 5, kratsi slovo, priorita 1.
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:989:6fa...–
juraj1750
Návštěvník
9. 2. 2018   #4
-
0
-

vďaka za rady

Nahlásit jako SPAM
IP: 88.212.36.–
MilanL+1
Grafoman
9. 2. 2018   #5
-
0
-

#4 juraj175
v podstatě jde o to vytvořit si slovník - základ/kořen slov s variantami předpon a koncovek, pak podle zadaného slova ve filtru najít ve slovníku kořen a přes ten testovat pomocí LIKE "*" & kořen & "*".
Při zadání neznámého slova požádat uživatele o kořen slova případně možné varianty nebo zkusit vygenerovat slovník z DB, srovnáváním názvů.

Nahlásit jako SPAM
IP: 91.139.9.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý