[Project Summary] [Download] [Screenshots] [Demo]
"Any table. Anywhere." (Print this guide and read it before installing.)
TableDance is a cross-platform database manipulation tool. Basically, it is a web-based SQL query builder.
TableDance is released under the PHP License, version 3.0. It uses sanitize functions by Zuchlinski and Pratt.
(This text is also found in Readme.htm included in the release. Links are to sample config/style files only.)
It's another day at the office. Information is stuck in a database somewhere. A non-technical user needs to get to it, but no administrative interface was built. Maybe the supporting developer moved on, maybe the project was so tightly scoped that they missed it out. As the default database guru you have three choices.
One, install the whole suite of database client tools on the user's PC. Two, string together a simple database driven site. Or three, have them tap you on the shoulder every time they want a little change. Yes, it happens. But little did I realise it would happen so frequently that I would, over the course of my career, get sick of building poxy little web-database interfaces for one or two poxy users.
I wrote TableDance so I could quickly configure something through which users present and future could reach their data, and leave me alone.
I also wanted to compel work into implementing something called 'TableDance.'
Cross-Platform: Runs on multiple databases, web servers, and browsers. It's so small and ugly that it has far fewer system dependencies than other web-based admin tools.
Customisable through Cascading Style Sheets (CSS)
Powerful: execute any SQL statement (yes, that's right, including create and drop table.) UI support for select, update, insert, delete.
Database: Any supported by PHP's 'DBX' module. Includes Oracle, MSSQL, MySQL. Tested on MSSQL 7 and MySQL.
Web Server: Any web server running PHP, with DBX and relevant database modules enabled. Naturally, database client software must also be installed on the web server. Tested on IIS.
You should be comfortable with HTML, web server configuration, SQL, and database server configuration. If you have ever linked a web page to a database before, you should be fine.
Create a folder for the TableDance files on your web server, then copy them in there. Make sure they have permissions for browsing and running scripts. There are no naming restrictions, or subfolders.
Check your PHP installation. (Load phpinfo.phpin your browser) If DBX and the relevant database modules are loaded, well and good. Otherwise you will have to enable DBX yourself.
DBX is included with the PECL repository and must be downloaded and installed separately. On Windows machines it is a matter of copying the .DLLs into the extensions folder and adding lines in php.ini.Additional configuration: some databases may have trouble if column names are changed to uppercase or lowercase by dbx. In your PHP configuration file, change the dbx.colnames_case setting in the [dbx] section accordingly.
Update 'config.cfg' with the following information:
Now test your configuration. Use an internet browser to open 'index.htm' and enter a simple query in the 'Raw SQL' text area. (A 'Select *' query is just perfect.) Press 'Submit'. If everything is just right, no errors will show on the following page.
Now configure the table UI. While being able to execute raw sql queries through a web front-end is cool, TableDance really shines when you can use its UI to view and edit data. To set up the TableDance UI on specific tables, add HTML 'forms' in 'index.htm' specifying:
Some examples are included in both config.cfg and index.htm. The easiest thing to do is to modify them.
Hate the default colour scheme? So do I, but I couldn't be arsed changing it. Customise TableDance look and feel by editing style.css.
In these paranoid times (sigh) I feel obligated to address security. Effort has been made to make TableDance as functional as possible, not as secure as possible. (Otherwise it's doubtful it would even exist.) Creating a sign-on system for TableDance is unnecessary and cumbersome. There are much more elegant ways to secure this application.
Database security - do not operate TableDance on the super user account. At least, not if you value your data enough to avoid some n00b luser wiping out everything with a 'delete *'. TableDance will not be able to affect anything its user account (defined in config.cfg) has no access to. If you let it use a super user account just to see that it connects, please change it to use a restricted account afterwards, and certainly before you let anyone else use it. Also, consider creating database views for TableDance rather than have it operate directly on tables. I know there are MSSQL 'admins' out there who will leave TableDance set to 'sa/blank', and I am prepared to travel overseas to smack down anyone who writes me about their resulting problems.
Web Server security - TableDance is only meant for use within a local network. Because of its 'open' design, it is vulnerable to malicious SQL injection and buffer overflows. If you must expose it to the greater Internet, please implement some basic web server security either through .htaccess files or through folder permissions.
If you know your way around PHP, then I'm sure you'll do a better job improving TableDance than I. Some strange design choices I've made are:
If you liked TableDance, why not try: phpFriendlyAdmin and phpMyAdmin. No links provided here. Go Google them.
When all else fails, come crying to me. I prefer to be emailed. You can get the address at the bottom.
Dave Edwards, who put me onto php and dbx.
SourceForge.net, for their uploads and downloads.
South Australian Courts, for paying my mortgage while I wrote TableDance.
Derek Wee, TableDance author, dtcwee AT users DOT sourceforge DOT net (user 1259809)
7 Feb 2006