Autor | Zpráva | ||
---|---|---|---|
Andrej.B Profil |
#1 · Zasláno: 13. 8. 2021, 14:57:33
Zdravim,
mam vyber z databazy podla nejakych podmienok. To este dam. Vyberam z kategorie admin_kategorie ci ma zobrazit menu pre prihlaseneho uzivatela, a ci ma k tomu pristup cez UserLevel($sid, $conn, 'id_user') $q = " SELECT a.*,u.* FROM admin_kategorie a JOIN user_admin_kategorie u ON u.id_admin_kategorie= a.id_admin_kategorie WHERE u.id_user = '".UserLevel($sid, $conn, 'id_user')."' AND aktivny_admin_kategorie = 1 ORDER BY a.level_kategorie DESC, a.id_admin_kategorie ASC "; V dalsom kroku mu to naservirujem. Ma z celeho pristup len k urcitym linkom v administracnom centre. V admin_kategorie mam este Column s nazovom level_kategorie, kde moze byt cislo 1, 5 , 11... Potrebujem pri servirovani aby mi to rozdelil do riadkov: vsetko s level_kategorie 1 = v jednom riadku vsetko s level_kategorie 5 = v dalsom riadku vsetko s level_kategorie 11 = v dalsom riadku Netusim ako spravne to dat do jedneho selectu. Pokial by som to dal do 3 roznych, tak by to slo, staci priradit do selectu where level_kategorie = 1 . Ale da sa to nejako krajsie a v jednom kroku? Pravdepodobne Group BY a ten prehnat nejakym while. Ale pouzivat iac Selectov v jednom selecte je prilis. Diky, ak sa na to niekto pozrie. |
||
Kajman Profil |
#2 · Zasláno: 13. 8. 2021, 15:11:25
Těžko uhádnout čemu říkáte řádky, ale buď
Nejčastější potíže s PHP (FAQ) » Nadpis skupiny nejen při výpisu z databáze nebo komplexněji dle Srovnání dotazů do závislých tabulek |
||
Andrej.B Profil |
#3 · Zasláno: 13. 8. 2021, 18:41:19
Ide o to, ze z tabuky vyberam hodnotu napriklad nazov_admin_kategorie podla toho, ci ma pritup.
Vypisem : $q = " SELECT a.*,u.* FROM admin_kategorie a JOIN user_admin_kategorie u ON u.id_admin_kategorie= a.id_admin_kategorie WHERE u.id_user = '".UserLevel($sid, $conn, 'id_user')."' AND aktivny_admin_kategorie = 1 ORDER BY a.level_kategorie DESC, a.id_admin_kategorie ASC "; $level = $conn->query($q); while ($row_level = $level->fetch_array()) { echo $row_level['nazov_admin_kategorie']; echo '('.$row_level['level_kategorie'].')'; echo ', '; } Vypis je : Nastavenie(11), Kategorie(11), Autor(1), Seria(1), Prednaska(1), Autor->Prednaska(5), Potrebujem tento vypis urobit tak, aby mi to dalo dohromady po kazdom cisle v zatvorke v takomto tvare: Nastavenie(11), Kategorie(11), < /br> Autor(1), Seria(1), Prednaska(1), < /br> Autor->Prednaska(5),< /br> Bud pouzit 3 krat select, ale to uz je dost narocne ako pise Jakub na vrana.cz cez viacere dotazy. Alebo v jednom a s vysledkami sa pohrat, ale to je to co mi nejde... V tom priklade Nadpis skupiny $pamet = ''; while ($line = …) { if ($line['pismeno'] != $pamet) { $pamet = $line['pismeno']; echo "<b>$pamet</b><br>"; } echo "$line[slovo]<br>"; } netusim ako to zapracovat do mojho prikladu. Dik |
||
Kajman Profil |
#4 · Zasláno: 14. 8. 2021, 12:08:36
Místo pismeno použijete level_kategorie. V echu uvnitř if dáte <br>. Za blokem patřící k if pak necháte vaše echa.
|
||
Andrej.B Profil |
#5 · Zasláno: 14. 8. 2021, 12:44:26
Neviem to urobit tak, stale mi donekonecna ukazuje prvu kategoriu, nejako to loopne forever...
Spravil som to takto nakoniec: $q2 = " select * from admin_kategorie group by level_kategorie Order by level_kategorie DESC "; $level2 = $conn->query($q2); while ($row_level2 = $level2->fetch_array()) { $q = " SELECT a.*,u.* FROM admin_kategorie a JOIN user_admin_kategorie u ON u.id_admin_kategorie= a.id_admin_kategorie WHERE u.id_user = '".UserLevel($sid, $conn, 'id_user')."' AND aktivny_admin_kategorie = 1 AND a.level_kategorie = '".$row_level2['level_kategorie']."' ORDER BY a.level_kategorie DESC, a.id_admin_kategorie ASC "; $level = $conn->query($q); while ($row_level = $level->fetch_array()) { echo $row_level['nazov_admin_kategorie']; } echo '</div><div class="p-1">'; } Diky za pomoc, este skusim ten vyssie na nejakom lahsom pripade. |
||
Časová prodleva: 3 roky
|
0