Hola!
No se por que me cuenta entender que es lo que necesitas.
De todas formas se me ocurre una idea algo sencilla:
El primer select lo bajas directamente de la base de datos.
Ahora, tienes un segundo select que depende del primero y un tercer select que depende del segundo.
Como ya dijimos al primer select lo tienes solucionado.
Al segundo select lo pones dentro de una capa con id="segundo" y al tercer select lo pones un otra capa con id="tercero"
Código:
<td><div id="segundo">
<select name=...>
<option value="">Seleccione una opción</option>
</select></div></td>
<td><div id="tercero">
<select name=...>
<option value="">Seleccione una opción</option>
</select></div></td>
Luego haces una página php llamada (supongamos) segundo.php donde haces la consulta mysql del segundo select donde recibes una variable por url (GET), por ejemplo "segundo.php?llave2=8"
Código PHP:
$query=mysql_query("SELECT llave, campo FROM nombretabla WHERE llave2='$_GET['llave2']");
echo "<select name='".$direcciona."' id='".$direcciona."' onChange='realiza(this.id)'>";
echo "<option value='0'>seleccionar</option>";
while($x=mysql_fetch_array($query))
{
echo "<option value='".$x[0]."'>".$x[1]."</option>";
}
echo "</select>";
Luego haces otra página como la que hicimos recien pero aplicada al tercer select que se puede llamar tercero.php?llave3=X
De esta manera al tener tres páginas te permitirá por medio de Ajax, que cuando seleccionen el primer select se llame la funcion de ajax que llama a seggundo.php?lave2=x y lo descarga en el div 2.
Suesivamente cuando seleccionas del select2 que descargaste con ajax que actualice el div3 con tercero.php?llave3=x por medio tambien de ajax.
Cómo hacerlo con ajax? Descárgate la función que diseñe desde usermax.net y alli lo harás facil.
Si todavía esta explicación te parece complicada o necesitas algo más completo no dudes en postear nuevamente.
Saludos!