Avatar
oggymotslp
Člen
Avatar
oggymotslp:

Zdravím,

jsem tu zas. A s jiným problémem.

Mám databázi plnou otázek a odpovědí. A pak mám vstup od uživatele. Dostanu třeba "Ahoj jak se máš", ale v databázi mám jen "jak se máš". A potřeboval bych, aby to porovnalo všechny otázky v databázi, a u té otázky s největší podobností by to vypsalo odpověď z databázi.

Absolutně nevím jak na to, projíždím vše co se dá, ale nemohu nic nalézt. Předem děkuji za odpovědi.

Odpovědět 5. října 17:14
Proč to dělat jednoduše, když to jde i složitě :D
Avatar
Odpovídá na oggymotslp
Josef Kuchař (Pepa489):

Šel bych na to tak, že bych si načetl do proměnné všechny řádky tabulky, foreachem to projížděl prvek po prvku a pomocí funkce similar_text, si zjistit nejvyšší shodu ;)

Nahoru Odpovědět 5. října 18:26
2x piš, jednou debuguj
Avatar
Odpovídá na oggymotslp
Martin Štěpánek (Enormyk):

Děláš něco na způsob Bota k chatování? :-D

Nahoru Odpovědět 5. října 18:50
Nesnáším, když někdo u if nepoužívá {}, byť se jedná o jeden řádek.
Avatar
oggymotslp
Člen
Avatar
Odpovídá na Martin Štěpánek (Enormyk)
oggymotslp:

Ne, něco na způsob zeptej se a dostaneš odpověď. Bohužel nemohu napsat více podrobností ;-)

Nahoru Odpovědět 5. října 19:06
Proč to dělat jednoduše, když to jde i složitě :D
Avatar
Odpovídá na oggymotslp
Josef Kuchař (Pepa489):

Možná něco takového(netes­továno)

//Fráze kterou hledáš
$stringToFind = "blablabla";
//Pomocné buffery
$maximum = 0;
$maximumString = "";
//Projití všemi záznami
foreach ($lines as $line) {
    //Porovnání, vrácí hodnotu v proměnné $percentage
    similar_text($line, $stringToFind, $percentage);

    //Pokud je % větší než maximum, tak je maximum procento a maximumString je tento řádek
    if($percentage > $maximum)
    {
      $maximum = $percentage;
      $maximumString = $line;
    }
}
// Vypiš nejpodobnější string
echo $maximumString;
Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět  +3 5. října 21:33
2x piš, jednou debuguj
Avatar
oggymotslp
Člen
Avatar
Nahoru Odpovědět 6. října 12:17
Proč to dělat jednoduše, když to jde i složitě :D
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 6 zpráv z 6.