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!