Stress will also cause all that you describe happening. You would be amazed what stress will do to the human body.
Sounds like you may have picked up a stomach virus or even gotten hold of some bad food. Or it could be something as simple as an allergic reaction to something you ate. If it continues you may want to get checked out for things like irritable bowel syndrome, which by nature flares, calms down, flares. Or you could be lactose intolerent. Watch what you eat and make a note when you have symptoms, keep a log and see if a pattern does not emerge. If not probably bad food. Just my guess. However like I said, if you are concerned, visit a gastro guy.