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 |
#2 · Zasláno: 3. 11. 2017, 16:00:12
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 |
#3 · Zasláno: 3. 11. 2017, 16:04:45
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 |
#4 · Zasláno: 3. 11. 2017, 16:09:02
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 |
||
Ikki Profil |
#5 · Zasláno: 3. 11. 2017, 16:16:28
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 |
#6 · Zasláno: 3. 11. 2017, 16:41:22
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 |
#7 · Zasláno: 3. 11. 2017, 16:44:07
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 |
#8 · Zasláno: 3. 11. 2017, 17:07:42
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. |
||
Časová prodleva: 6 let
|
0