table

[table] allows you to quickly create a temporary 'in line' database that is local to the template and not part of the global database cache. A table can be used in any context that accepts a database 'db' as a parameter (using the syntax table=tablename).

With [table], you define the name of the table and the fields. Between the table tags, you populate the table with tab delimited values, with the record separated by carriage returns, just like a .db file.

Parameters

ParameterDescription
nameThe name used to reference the table during the duration of the template.
fieldsA comma delimited, ordered, list of fieldnames to be used for the table.
Tables can be static, such as a simple from/to db for a [convertchars] context or dynamic, such as a file listing. The table allows you to further search and sort a directory of files.

Example WebDNA code:
[table name=filelisting&fields=fname,fsize,fdate]
[listfiles images/uploads][filename]  [size]  [moddate]
[/listfiles]
[/table]

Example WebDNA code:
[search table=filelisting&nefnamedatarq=[blank]&fsizesort=1]
  [founditems]
    [filename] ([fsize]), [fdate]<br>
  [/founditems]
[/search]

You could use these examples to offer three different sort options for the file listing, something [listfiles] alone can't do.

You can declare a table by using the context without adding records. Then, later on the page, you can use append and replace (and delete, for that matter) to populate the table. Then when you're done with all that, do your search.

Another example to replace each letter of the alphabet with the corresponding number:
Example WebDNA code:
[text]alphabet=abcdefghijklmnopqrstuvwxyz[/text]
[table name=t1&fields=from,to]
[listchars chars=[alphabet]]
[char]  [index]
[/listchars]
[/table]
[convertchars table=t1]this is your text[/convertchars]
Results: 208919 919 25152118 2052420