You're adding the three X, Y, Z rotations together. You need to multiply them, instead. Compute three separate matrices using those three formulas, and multiply them together. (Note that you might have to multiply them in reverse order, Z * Y * X - it depends on what convention you want for your Euler angles.)
Also, you have an incorrect negative sign in your Z rotation matrix. Compare against Wikipedia. Also, you're storing your matrices in row-major order, but OpenGL accepts them in column-major order, so you should transpose them.
The matrices shown on Wikipedia are written for using column vectors, i.e. multiplying matrix * vector, not vector * matrix. (Note that this is an entirely separate issue from whether the matrices are stored in row-major or column-major order.) It sounds like matrix * vector is what you're doing, but if not, the matrices should be transposed again.