Código MySQL:
Ver originalSET detalles.p1
='".$p1."', detalles.p2='".$p2."',
detalles.p3='".$p3."',
detalles.pf='".$pf."'
WHERE detalles.idprogramacion
='".$dato['idprogramacion
']."' AND detalles.idmatricula
='".$dato['idmatricula
']."'
No repitas posts y menos sin dar toda la información....
Si quieres actualizar un campo de una tabla no necesitas para nada las otras tablas, solo tienes que seleccionar correctamente el registro de la tabla en cuestión. Solo tu puedes saber si esas dos condiciones (WHERE) que he dejado son suficientes.