Thanks for the input. I'm saving the spell data in a table for accessibility and speed, but it doesn't allow for modification (on the fly) and the same is true for the indexing method. I will down the road add the ability to add your own spells which will be saved as macros (i think) for ease of portability since there isn't really an accessible db with MT.
As for a key word search, that will be limited to spell names. Currently, you have to type in the exact spelling and the word is case sensitive just until I got the functionality down. But I'm changing that now as we speak. I'm adding indexes for the before mentioned, so you'll be able to browse for spells as well. It'll be path specific from Home | (class,domain,school) categories | (class,domain,school) | spell description, so you'll be able to check out many related spells quickly. And the spell descriptions will have all the links relating to that spell as well including descriptors and subschools which can also be accessed by browsing from the Home page. Clicking the SpellLib icon will always bring you to home page. I still have some more code to do (i put on hold to work on my current dnd game), but I'm nearly finished with everything I spoke about.
I'm not actually interested in making a db framework, but my code can easily be adapted for other dbs. Most of the changes would be done on the html pages for your specific db (variable names and such). Dropping in the data and indexes was the easy part. If you have another db you would like to apply to my spell framework(??), I can guide you in how to adapt it. But we should wait until 1.0 comes out first
Generally speaking, the format of the table is 0 holds the index which is an array. The position in the array for the searched item is the table index +1. So, for spell descriptions, it's just a string property list (name = value;) when the names are then used as variable name with varsFromStrProp(string,"UNSUFFIXED") which adds "_" to the name so it doesn't interfere with other variable names. So, if you can come up with you own list of names and values and you write your own html page to display, you can pretty much use anything. I try to keep the hardcoding out of my code and usually refer to a set variable in most cases.