webForumDet fria alternativet

Poster i två tabeller

Databaser & SQL

2 svar · 148 visningar · startad av skyman

Medlem sedan juli 20012 450 inlägg
Frågan#1

Jag har två tabeller, document_dirs och documents.
Document_dirs innehåller namnen på kataloger i ett dokumentarkiv för en websida.

Documents innehåller namnen på filerna som är i mapparna.

mysql> select id,pid from document_dirs where id=37;
+----+-----+
| id | pid |
+----+-----+
| 37 | 0 |
+----+-----+
----------------------
mysql> select id,pid from document_dirs where pid=37;
+----+-----+
| id | pid |
+----+-----+
| 50 | 37 |
| 61 | 37 |
+----+-----+

I Mappen 37 finns alltså två undermappar, 50 och 61.

mysql> select id,directory from documents where directory=61 || directory=50;
+----+-----------+
| id | directory |
+----+-----------+
| 38 | 50 |
| 71 | 61 |
| 72 | 61 |
| 73 | 61 |
| 74 | 61 |
| 75 | 61 |
| 76 | 61 |
| 77 | 61 |
+----+-----------+

I mappen 37 finns alltså två undermappar och 8 filer totalt. Jag vill ha en sql-sats som ger mig antalet filer i mappen och alla undermappar samt hur många undermappar och underundermappar som finns (det kan ju vara oändligt många)...

Hoppas någon förstod och kan hjälpa mig :)

Medlem sedan dec. 200012 464 inlägg
#2

Optimist.

Du får skriva en rekursiv PHP-funktion som gör räknar för varje mapp och sedan anropar sig själv för varje under-mapp.

Medlem sedan juli 20012 450 inlägg
#3

Som jag befarade... :l
Tack :)

253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)