Te faltó? o no pusistes en el mensaje la instruccion(s) que obtienen el campo $url de tu registro obtenido con la consulta?.
$query = "SELECT * from $tabla WHERE id = $id";
$result = mysql_db_query ($db, $query, $link);
while ($registros=mysql_fetch_array($result)){
$url = $registros['url']; // suponemos que el campo de tu BBDD q contiene el URL se llama url ...
}
//Descargamos el archivo
header("Location: $url"); // asi deberia sobrar ..
Con eso deberia funcionarte (yo uso algo parecido) ...
Pero, lo ideal es usar las cabeceras HTTP 1/1. correspondientes para enviar el archivo segun su tipo y caracteristicas:
Código:
Header ( "Content-Type: application/octet-stream");
Header ( "Content-Length: ".filesize($url));
Header( "Content-Disposition: attachment; filename=$archivo");
readfile($url);
$url debe contener el paht y nombre de archivo completo.
$archivo .. es opcional. Si usas uno fijo .. las descargas q hagas apareceran con el mismo nombre .. usa el nombre de fichero de parte de tu $url para obtenerlo.
Un saludo,