Autor Zpráva
caradoc
Profil *
prosím potřebuji poradit,
mám dvě tabulky, první tabulka má v sobě data
table slozky
ID, nazev
1 | slozka01
2 | slozka02

druhá tabulka má v sobě data

ID | id_slozky | soubor | opravneni
1 | 1 | 1.jpg | user
2 | 1 | 2.jpg | user
3 | 1 | 3.jpg | user
4 | 1 | 4.jpg | user
5 | 1 | 5.jpg | admin
6 | 2 | 1.jpg | user
7 | 2 | 2.jpg | user

a teď potřebuji napsat selekt který vybere toto :
vypíše název složek z tabulky "slozky" poté zjistí počet souborů v dané složce, a počet fotek pro uživatele "user" a nebo "admin" podle toho kdo je přihlášen
zkusil jsem takto :

SELECT slozky.nazev, COUNT(fotky.id_slozky) AS pocet_fotek,
(SELECT COUNT(fotky.opravneni) FROM fotky WHERE opravneni LIKE '%free%') AS opravneni
FROM slozky
LEFT JOIN fotky ON fotky.id_slozky=slozky.id
GROUP BY nazev
ORDER BY slozky.nazev DESC

ale nepracuje to správně,počty oprávnění jsou chybná, nezjišťuje oprávnění vidět soubory pro danou složky z tabulky slozky,
poraďte prosím,
AM_
Profil
WHERE opravneni LIKE '%free%'
v té tabulce vidím jen oprávnění USER a ADMIN. Jinak nevím, jestli je šťastné to porovnávat like, myslím, že oprávnění by se mělo porovnávat přes =.
Nebo ještě lépe, oprávnění bych řešil jako tabulku o 3 sloupcích:
uzivatel / soubor / ano-ne
přičemž by byla nějaká výchozí kritéria a zapsala by se oprávnění jen těch souborů, kde budou jiná, než výchozí. Pokud by ke všem souborům mohl výchoze každý, mohl bys vypustit sloupec ano-ne a dvojice uzivatel-soubor by ukazovala rovnou, že uživatel k souboru nemůže.

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:

0