SourceForge.net LogoTableDance (Inactive/Abandoned)

[Project Summary] [Download] [Screenshots]


"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.)   

Unfortunately, the Demo no longer works as few (free) hosting environments support PEAR and therefore DBX. The project is inactive/abandoned - more details below.

Typical use

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.

Why I wrote TableDance

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.'

Features

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. 

Requirements

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.

Browser: Tested with IE6 and Mozilla 1.7. TableDance only uses POST variables and CSS. No cookies or JavaScript. (Certainly no ActiveX or Java.) 

Assumed knowledge

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.

Installing TableDance

  1. 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. 

  2. Check your PHP installation. (Load phpinfo.php in 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 PEAR/PECL repository and must be downloaded and installed separately.

  3. 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.
  4. Update 'config.cfg' with the following information: 
  5. 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. 
  6. 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.

Customise TableDance

Hate the default colour scheme? So do I, but I couldn't be bothered changing it. Customise TableDance look and feel by editing style.css.

Securing TableDance

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.

Hacking TableDance

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. 

Troubleshooting

Database

Web Server

Support Notes

Implementing TableDance has gotten harder since DBX has shifted from PHP core to PECL. I haven't been able to make the choice between including docs for installing PHP/DBX or to port to PDO. Both present their problems. But by leaving it in DBX the code remains easy enough to hack. If you can work out how to install dbx, you should have an easy time of it. Besides, my circumstances have changed and I've gotten out of IT. I no longer have to use TableDance, so I am reluctant to support it.

Thanks

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.

From/By:

Derek Wee, TableDance author, dtcwee AT users DOT sourceforge DOT net (user 1259809)

18 May 2014