Bueno .. al parecer tu código usa GD (
www.php.net/gd) para generar la imagen .. Tambien hace uso de cabeceras HTTP para enviar la imagen generada al instante ("en línea").
No sé como quieres gestionar tus datos en tu BBDD, me refiero principalmente a la imagen en sí .. No sé si quieres almacenar tu imagen como "binario" en tu BBDD o bien generar un archvio y en tu BBDD sólo vincularlo con el nombre del archivo que generes.
Si te vas por el lado del "binario" .. en ese caso tu imagen tienes que generarla hacia un "string", para eso puedes capturar el buffer de salida de PHP y así tener tu dato "binario" de tu imagen sobre una variable:
Código PHP:
<?php
// inicio de captura del buffer.
ob_start();
// tu código actual .. (sin el header() que envia cabeceras HTTP)
$imagen_binario = ob_get_contents();
ob_end_clean;
// A partir de aquí .. ya tienes tu imagen lista para procesarla .. hasta podrías "mostrarla" a la vez que la registras a tu BBDD, usando:
// Proceso de tu registro de datos a tu BBDD ...
// Enviar la imagen al cliente (navegador).
header("Content-type:image/jpeg");
echo $imagen_binario;
?>
Si quieres generar un archivo de tu imagen .. el 2° parámetro de imagejpeg() que usas ahora como: "" .. es ahí donde indicarías tu nombre de archivo y ruta ...
Posteriormente actuaría tu código de ingreso de datos a tu BBDD. No sé si eso lo manejas ya .. pero es un "INSERT" común y los datos ya los tendrías a mano ahí mismo $nom, el nombre de la imagen que des .. y ese ID que mencionas que no sé de donde sale (o será que se el "ID" autonumérico típico .. por qué si es así .. eso lo generá Msyql al ingresar tu registro .. no tú a mano).
Un saludo,