First off, don't use both table and longtable -- the two environments shouldn't (and mustn't) be nested. Separately, since a longtable isn't a float (in the LaTeX sense of the word), there's no point providing location directives such as [!htb].
Second, to force the width of the longtable environment to be equal to \textwidth, type something like
\usepackage{longtable,lscape}
...
\begin{document}
...
\begin{landscape}
\setlength\LTcapwidth{\textwidth} % default: 4in (rather less than \textwidth...)
\setlength\LTleft{0pt} % default: \parindent
\setlength\LTright{0pt} % default: \fill
\begin{longtable}{@{\extracolsep{\fill}}|*{15}{c|}}
... % tabular material here
\end{longtable}
\end{landscape}
...
Note that the code above also resets the \LTcapwidth macro; since you're working in landscape mode, you'll almost certainly want to override this macro's default value of 4 inches. The @{\extracolsep{\fill}} directive, by the way, is exactly the same as what one would use in a tabular* environment. It tells LaTeX to insert \fill -- an infinitely stretchable amount of whitespace -- in each intercolumn space.
For more information on using the longtable environment, see the longtable user guide; if you're using TeXLive or MikTeX, the user guide may be brought up by typing texdoc longtable in a command window.
ltxtablepackage. As suggested by its slogan: "ltxtable:longtablemeetstabularx" – Werner May 03 '12 at 21:20