Tienes que componer tus cabeceras HTTP para indicar al navegador que los datos que le vas a enviar son para descargar. Esto lo haces con la función Header() de PHP y las cabeceras HTTP adecuadas (ejemplos tienes en la documentación oficial de PHP y en las FAQ's de este foro):
www.php.net/header
Una vez hecho esto, necesitas entregar al buffer de salida de PHP el contenido del archivo. Para eso, .. haz tu consulta SQL a tu BD por ese ID a tu registro y obten el nombre/ruta de tu archivo:
SELECT nombre_archivo FROM tabla WHERE id=$id
y de ahí .. puedes usar la función:
readfile()
www.php.net/readfile
Un saludo,