muchas gracias, es muy interesante tu solución y también la dirección. he encontrado la manera de borrar filas padre e hijas, te copio el código de la página de respuesta
$sql="DELETE
FROM personal WHERE Num_personal=$num_personal_e";
If ($res=send_sql($db,$sql)) {
echo "</br></br>El comando SQL se ha ejecutado";
echo "</br></br>Se ha eliminado el registro seleccionado de la tabla personal";
}
$sql1="DELETE
FROM participantes WHERE Num_personal=$num_personal_e";
If ($res=send_sql($db,$sql1)) {
echo "</br></br>El comando SQL se ha ejecutado";
echo "</br></br>También se han eliminado las filas hijas de la tabla participantes";
}
$num_personal_e es un valor seleccionado en un combo, es muy sencillo se trata solamente de hacer dos delete en lugar de uno. lo que estaría muy bien es poder borrar las filas nietas pero por este sistema y creo que también por el tuyo, habría que agregar un campo a la tabla con las filas nietas que fuera clave externa con el valor de la clave principal de la fila abuelo. la operación de borrado no presentaría mayor problema solo habría que añadir otro delete. lo que pasa es que a la hora de agregar filas a la tabla nieta tendrías que molestar al usuario pidiendo el valor de otra clave secundaria o, inventar un sistema para que este valor se añadiera automáticamente. no soy partidario de molestar al usuario entre otras cosas porque estoy convencido de que esto es una fuente de errores. no tengo mucha experiencia con php y de momento no voy a seguir experimentando porque tengo programadas otras prioridades pero algún día puede que vuelva sobre el tema de borrar en cascada filas padre, hijas y nietas.
estoy dandole los últimos toques a la página y en pocos días estará disponible en mi sitio. podrás entrar directamente a borrar en cascada aquí
http://www.carloszcom.com/base2/modificar/casca_per.php
y también estará visible el código de esta página que es el formulario para borrar y la página de respuesta.
gracias por todo y hasta pronto.