Autor Zpráva
Msdll
Profil *
Dobrý den, potřeboval bych poradit s vyhledáváním uživatelů.
mám v databázi tabulku uzivatele(id_uzivatel, jmeno, prijmeni, email, telefon) a vyhledávací formulář s jedním políčkem kam je možno zadat bud id, jméno uživatele (jméno + příjmení nebo jenom příjmení), email a telefon. zkrátka jakékoliv informace o uživateli.
Jak mám toho uživatele vyhledávat? budu muset zjištovat jestli bylo zadáno například telefoní číslo, email nebo jméno a pak vytvořit podmínku where? nebo lze udělat nějaký sql dotaz který by byl schopný nějak inteligentně vyhledávat?
Děkuji
H4UnT3R
Profil *
SELECT tvojeSloupecky FROM tabulka WHERE sloupecek LIKE %jmeno% 

Děláš to v PHP?
Pokud ano, nezapomeň udělal sql injection zabezpečení...
např. filter_input(), addslashes, htmlspecialchars...
Kajman
Profil
Msdll:
Můžete použít OR a vyhledávat tak ve všech sloupcích. Najde to tedy kdekoliv, ale nebude to tak rychlé, jak vyhledávání v jednom sloupci. Jediná komplikace může být s vyhledáváním jednoho řetězce ve dvou sloupcích (jméno + příjmení) - to asi zkuste vyhledat ve sloučení těch sloupců (název funkce (či operátor) není napříč databázemi sjednocen).
lionel messi
Profil
H4UnT3R:
Pokud ano, nezapomeň udělal sql injection zabezpečení...
např. filter_input(), addslashes, htmlspecialchars...

Pozor. htmlspecialchars nechráni pred sql injection, ale pred XSS (áno, je tiež dôležité jej správne použitie). Addslashes by som však v súvislosti s SQL injection považoval za zlé riešenie, vhodnejšie je použitie príslušnej escapovacej funkcie: mysqli_real_escape_string a pod.
H4UnT3R
Profil *
Tyjo, vidíš... sám to používám a úplně jsem to opomněl...

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: