And his answer might be something we'll never completely understand. In any case, his answer is always the best answer. Yes, prayer is a time to be honest with God about what we want. But it's also a time for us to recognize who's really in control. Having said all that, there are other reasons our prayers might be ineffective.
Prayer is about so much more than simply getting stuff, anyway.
It's about giving God our adoration and thanking him for his goodness. Idols aren't always false images of God. All of these points are vital, of course, but most importantly, people must belong to God before they can communicate with him. As Christians, we need to put God first in our lives to have an effective prayer life. If you're doing that, God does hear your prayers, and he answers them.