| 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: 5 let
|
|||
0