To replace field values of records in a database, put a [ReplaceFoundItems] context into a template inside a [Search] context. As each matching record is found, that record's fields inside the [ReplaceFoundItems] context are replaced with new values.
Example (normally you would put the following text into a .tpl file on your server and use a web browser to link to it):
In the example above, the database "products.db" opens, all records whose sku field is not "0" found, and each of those found record's price fields incremented by 10%. As each found record is visited, that record's field values are available inside the context so you can use them to compute new values. This behavior is very different from the simpler [Replace] context, which replaces all found items with the same value.
Any fieldnames that do not exist in the database are ignored, and if you leave some existing fieldnames out of the replace context, they will remain unchanged in the database. Certain letters are illegal, such as <tab> or <carriage return>, so they are converted to <soft tab> and <soft return> before being added to the database. Some computers use the two-character sequence <carriage return><line feed> to indicate a single end of line, which is automatically converted to a single <soft return> character before being added to the database. These 'soft' characters are automatically converted back to 'hard' versions (the originals) whenever you retrieve fields from a search of the database.
Note: You may specify an absolute or relative path to the database file,
as in "/WebCatalog/GeneralStore/SomeDatabase.db" or "../SomeDatabase.db".
You may also place "^" in front of the database path to indicate that
the file can be found in a global root folder called "Globals" inside
the WebCatalogEngine folder.
Contrast between [ReplaceFoundItems] and [Replace] | |||||
---|---|---|---|---|---|
[Search db=products.db&neSKUdata=0] [ReplaceFoundItems]price=[math][price]*1.1[/math][/ReplaceFoundItems] [/Search] |
[Replace db=products.db&neSKUdata=0]price=10[/Replace] | ||||
SKU | price before | price after | SKU | price before | price after |
1 | 5 | 5.5 | 1 | 5 | 10 |
2 | 10 | 11 | 2 | 10 | 10 |
3 | 15 | 16.5 | 3 | 15 | 10 |
4 | 20 | 22 | 4 | 20 | 10 |
5 | 35 | 38.5 | 5 | 35 | 10 |