Hola aquí te dejo un ejemplo de como lo usé yo y funcionó muy bien.
Código PHP:
<?
//conexion
$cnx = mysql_connect("localhost","root","");
//nombre base de datos
mysql_select_db('sgi');
//clase de la cual te hablo
include 'baaSelect.php';
//creas un objeto
$sel = new baaSelect();
//addSelect(selectName, srcTable, idField, descripField [, fkField [, order [, defaultText]]] )
/*Cargamos al objeto los select. Los select se cargan
consultando a la base de datos. Por ejemplo el primero:
se llama 'nombreSelect1', consulta a 'tabla1' para obtener
'value=tabla1_clave' (es decir PrimaryKey), y va a mostrar
entre <option value="tabla1_clave">tabla1_descripcion</option>.
El '1' es para que se ordenen por descripcion. El "--no seleccionado--"
es lo que se va a mostrar por defecto en el select.
Ahora en segundo select, agregamos el campo de
tabla2_clave_foranea_de_tabla1 que vendría a hacer
el que relaciona a las 2 tablas. Lo mismo con el 3ro que
depende de lo que se elija en el segundo. Como dato,
yo lo use con 4 niveles y funcionó perfecto */
$sel->addSelect('nombreSelect1', 'tabla1',
'tabla1_clave', 'tabla1_descripcion','',1,'--no seleccionado--');
$sel->addSelect('nombreSelect2', 'tabla2', 'tabla2_clave',
'tabla2_descripcion','tabla2_clave_foranea_de_tabla1',1,'--no seleccionado--');
$sel->addSelect('nombreSelect3', 'tabla3', 'tabla3_clave',
'tabla3_descripcion','tabla4_clave_foranea_tabla2',1,'--no seleccionado--');
/*Se termina con el HTML y llamando a dos metodos
de la clase makeScript() en el head que escupe todo
el JavaScript necesario para evitar recargar la página
y makeSelect('nombreSelect') dentro de etiquetas form
para crear los <select>*/
?>
<HTML>
<HEAD>
<title>Ejemplo</title>
<? $sel->makeScript() ?>
</HEAD>
<BODY>
<form method="get">
<strong>Tabla1: </strong><?$sel->makeSelect('nombreSelect1');?><br />
<strong>Tabla2: </strong><?$sel->makeSelect('nombreSelect2');?><br />
<strong>Tabla3: </strong><?$sel->makeSelect('nombreSelect3');?><br />
</form>
</BODY>
</HTML>
Muy piola no?
Espero que te sirva, a mi me salvo la vida.
Adios.