Hepsine bakmadım ama su satırı değistir hallolur gibi:
$query = "INSERT INTO firma(FirmaAd, Adres, Telefon) VALUES('$firmaadi','$adres','$telefon')";
bunu
$query = "INSERT INTO (FirmaAd, Adres, Telefon) VALUES ('$firmaadi','$adres','$telefon')";
böyle yap..
olmadı

sql ide veriyim
-- phpMyAdmin SQL Dump
-- version 2.9.1.1
-- http://www.phpmyadmin.net
--
-- Anamakine: localhost
-- Üretim Zamanı: 26 Temmuz 2008 saat 20:39:37
-- Sunucu sürümü: 5.0.27
-- PHP Sürümü: 5.2.0
--
-- Veritabanı: `firma`
--
-- --------------------------------------------------------
--
-- Tablo yapısı: `firmalar`
--
CREATE TABLE `firmalar` (
`ID` int(11) NOT NULL auto_increment,
`FirmaAd` tinytext collate latin1_general_ci NOT NULL,
`Adres` tinytext collate latin1_general_ci NOT NULL,
`Telefon` tinytext collate latin1_general_ci NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
--
-- Tablo döküm verisi `firmalar`
--
INSERT INTO `firmalar` VALUES (1, 'Giyim', 'Uzun Çar?? Cad. No:48', '2546547');