05. oktober 2015 - 21:44Der er
8 kommentarer og 1 løsning
Tabel i tabel
Jeg vil gerne lave en side, hvor man dynamisk kan lave et ukendt antal tabeller, med et ukendt antal kolonner og et ukendt antal rækker. Disse tabeller skulle så gemmes i mysql.
Jeg forestille mig at lave følgende 4 tabeller i mysql:
tables: id - caption Denne skal indeholde tabellens navn.
th: tableid - series - content Denne skal indeholde tabellens kolonneoverskrifter koblet op på tabellen 'tableid' og sorteret efter 'series'.
rows: id - tableid - series Denne viser hvor mange rækker der er i tabellen koblet op på tabellen 'tableid' og sorteret efter 'series'.
cells: rowsid - series - content Denne indeholder cellernes indhold koblet op på 'rowsid' sorteret efter 'series'.
På den måde kan jeg med 4 tabeller i princippet lave uendelig mange tabeller som kan vises på en hjemmeside.
Men når jeg kigger på mine 4 tabeller, så kan jeg ikke lade være med at tænke, at det må kunne gøres bedre. Er der nogen der har en bedre måde de tænker jeg kan gøre det på?
Hmm efter at have tænkt lidt over det, så er x-/y-koordinater nok den smarteste måde at gøre det på, når man ikke kender tabellernes antal og hver tabels antal kolonner og antal rækker.
Altså to tabeller.
tables: id - caption Denne skal indeholde tabellens navn.
cells: tableid - row - col - content Denne skal indehold tabellens cellers indhold. Ved row = -1 så er der tale om kolonneoverskrifter (th).
Disse data kan relativt nemt puttes i et php-array og derefter udskrives som html eller XML.
Jeg hører fortsat gerne, hvis der er en smartere måde.
Det kunne du godt sælge til mig, da det også giver muligheden for at sætte forskellige data på rækkerne/kolonnerne.
To tillægsspørgsmål: 1) Bytter du ikke om på rækker og kolonner i dit eksempel? HTML arbejder jo med rækker(tr) som du efterfølgende putter celler i(td). I dit eksempel forstår jeg det sådan, at du danne kolonner som du kobler celler på.
2) Hvorfor kobler du table_id på den tredje tabel(dyndata)? Cellerne er jo allerede koblet op på col_id og behøver vel derfor ikke også table_id. Det kan naturligvis gøre det nemmere at slette en tabel, men omvendt, så er det unødig fyld af data i mysql.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.