Vamos a ver, si tienes una tabla A con un id y una tabla B en la que el id de A es una clave foránea. Por narices, tienes que hacer el insert antes en A que en B. La lógica de ejecución es la siguiente:
1) Insertas en A.
2) Consultas en A id de la inserción. También lo puedes hacer con
mysql_insert_id, que te recupera el id del último insert.
3) Utilizas dicho id para la inserción de B, como clave foránea.
Si los insert se hacen en zonas diferentes, estás obligado a hacer un select en el paso 2, si lo haces en el mismo script, puedes usar la función que te he pasado.
Un saludo.
PD: Si estás insertando antes en B que en A, repasa tu lógica, porque está mal. No puedes insertar primero en una tabla con una clave foránea, sin insertar en la que referencia primero.