Autor Zpráva
Sylar
Profil
Zdravím,
v proměnné mám string
$dlouhy_string = "abc / MOJE_JMENO _def"

v databázi mám uloženo pouze
MOJE_JMENO
MOJE_JMENO_2
MOJE_JMENO_3

lze pomocí sql dotazu zjistit zda-li některý záznam v db je obsažen v tom stringu $dlouhy_string ?

napadá mě pouze řešení, vytáhnout si všechny záznamy z db a pak je cylkem kontrolovat funkcí na podřetězce např. strpos() ale rád bych to udělal trošku elegantněji ...

napadá někoho nějaké možné řešení?
Jozin
Profil
Zdravím,

a co to udělat obráceně. V PHP rozsekat $dlouhy_string na $moje_jmeno, $moje_jmeno2 a $moje_jmeno3 a pak položit dotaz na db?
Sylar
Profil
Jozin:
to by v mém případě asi nefungovalo. příklad, který jsem uváděl je konkrétně použit na detekci robotů procházejících stránky (seznambot, googlebot apod.) Ten $dlouhy_string si já naplním $_SERVER['HTTP_USER_AGENT'], který obsahuje jméno robota, ale ještě k tomu další údaje a já mám v db uloženo právě jen to jméno robota Proto tvůj nápad použít nelze, protože není podle čeho rozsekávat (např. mezery nejdou protože některé jména robotů obsahují i mezeru).
Tori
Profil
Sylar:
MySQL ekvivalent pro strpos je LOCATE(), přičemž pořadí znaků se v MySQL počítá od 1.
Sylar
Profil
Tori:
skvělé, to je přesně co potřebuji. díky moc, funguje

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0