La query andaría cerca de esto:
Código SQL:
Ver originalUPDATE pe, pu
FROM dir_persona pe INNER JOIN dir_puesto pu ON pe.id_puesto = pu.id_puesto
SET pe.nombre = '$nombre',
pu.puesto = '$puesto'
WHERE pe.id_persona = '$id_persona',
pe.id_puesto = '$id_puesto';
Ahora bien, tu query tal y comola tienes te va a dar más erroes, porque estás invoncando tablas que no están en el UPDATE. ten en cuenta que en el UPDATE deben si o si listarse todas las tablas cuyas columnas se mencionen en el SET o el WHERE.