$formDate = mysql_real_escape_string($formdate);
$formPerson = mysql_real_escape_string($formPerson);
....
//For each and every $var you inject in the SQL statement.
$sql="INSERT INTO maticna
(formCompany,formPlace,formDate,formPerson,formCollect
,formOffer,formDescribe,formBarkod,formSubject,formWorking
,formStatus,formRevision)
SELECT
c.formCompany, c.formPlace
, '$formDate' AS formDate
, '$formPerson' AS formPerson
, '$formCollect' AS formCollect
, '$formOffer' AS formOffer
, '$formDescribe' AS formDescribe
, '$formBarkod' AS formBarkod
, i.formSubject, w.rnNo
, '$formStatus' AS formStatus
, '$formRevision' AS formRevision
FROM company c
INNER JOIN work w ON (w.id = i.work_id)
INNER JOIN inv i ON (i.company_id = c.id)
WHERE i.formBarkod= '$formBarkod' ";
Ошибки, которые вы делаете
1. Не используйте неявный синтаксис соединения, это приводит к перекрестным соединениям; вместо этого всегда используйте явный синтаксис соединения.
2. У вас не было никаких критериев присоединения.
3. Все $ vars нужно всегда экранировать.
4. Все $ vars, будь они числа или нет, должны быть указаны в SQL-выражении.
5. Незначительная синтаксическая ошибка в операторе вставки.