Autor Zpráva
Ikki
Profil
Zdravím, snažím se vypsat veškeré názvy sloupců kdy je v řádku hodnota pro daný sloupec stanovená k číslu "1", tedy nižší či vyšší vypsána nebude.
Našel jsem si tu poměrně starý příkaz, nicméně funguje i v PHP 7+, no bohužel v případě kdy využiji ještě příkaz WHERE, tak příkaz jako by neexistoval a najednou není možné načíst žádný objekt.

SQL Dotaz: $select_columns= $mysqli->query("SHOW COLUMNS FROM permissions");

Chtěl bych se tedy zeptat jestli je nějaká možnost jak vypsat veškeré sloupce s hodnotou '1' v řádku.
juriad
Profil
Databáze není excel. Pokud se snažíš hledat sloupce, které něco splňují, máš špatně navraženou databázi. Hledat máš vždy řádky.
Viz též Některé časteji řešené dotazy pro MySQL - FAQ
Ikki
Profil
Jsem si toho vědom, taktéž jsem si vědom toho že toto je dotaz spíše na řádky, ale já se snažím si ulehčit práci.

Potřebuji vypsat veškeré oprávnění daného uživatele z tabulky, tedy pokud mám 10 sloupců pojmenovaných podle určitých oprávnění, tak je pro mne jednodušší vypsat názvy sloupců podle hodnoty v řádků, než tvořit nějaké podmínky IF a další, samozřejmě to beru teoreticky.

Pokud by tu měl někdo nějaký jiný ideál o tom jak vypsat veškeré oprávnění uživatele s hodnotou 1 v řádku určeném uživateli bez použití podmínek IF a vypsání echa jakožto názvu pro každé oprávnění, perte to do mě, prosím.
juriad
Profil
Správně máš mít tabulku:
uživatel - oprávnění
1, view
1, share
1, edit
1, admin
2, view
2, share
3, view
4, view
4, edit
Dotazy jsou pak triviální.
Ikki
Profil
Není to zbytečně moc složité? Pokud jsem tě dobře pochopil, tak by jsi chtěl zapisovat veškerá oprávnění uživatele do nového řádku, pokud by následně bylo přibližně 10,000 uživatelů obsahující tato oprávnění a každé by bylo zvlášť, tak by to bylo třeba i 100,000 záznamů jen o pravomocech. Vím, že MySQL je opravdu rychlá a zvládne toho hodně, ale je tohle ideální řešení?
juriad
Profil
Ano, je to ideální řešení. Když nad dvojicí sloupců (užívatel, oprávnění) budeš mít index, tak vyhledávání bude bleskové.
Keeehi
Profil
Ikki:
ale je tohle ideální řešení?
Ano.

Dokonce se dá uvažovat i o dvou tabulkách. Mělo by to ale význam v případě, že ke každému oprávnění jsou ještě nějaké informace (např. kdo a kdy ho vytvořil.)
Ikki
Profil
Keeehi:
To by bylo možné udělat i v jedné tabulce kdy vytvořím sloupce "kdo" a "kdy", ze strany funkce je to naprosto stejné bez použití další tabulky, nebo jsem tě špatně pochopil?

juriad:
Dobře, děkuji.
Využiji tedy tuhle variantu, díky moc.

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: