I can break blocks but they give me nothing in one world. And I don't want to restart because I'm creating an adventure map.
If I were to take a guess at the problem it may be because you have gamerule
/gamerule doTileDrops false set to false. You can check this by typing
/gamerule doTileDrops and hitting enter, this will tell you if it's set to true or false. If it says false simply type (true) after the previous command (This is assuming you are using command/cheats)