首先,有区别。
「教えてくれる」
主语是对方,相当于 sb. do sth. for me
「教えてもらう」
主语是自己,相当于 I ask sb. do sth. for me
向别人请教的时候用:
~教えてもらいたい/いただきたい
~教えてくれる? /ください
主语是老师的时候用「教えてくれる」,表示老师教给你什么
主语是你的时候用「教えてもらう」,表示你从老师那学到什么
如果是直接对话,最好用「教えてもらう」,再用上它的尊敬语,比如
「先生、~教えてもらえませんか?」
向别人请教的时候要用后者。前者是别人主动教给你知识,后者是你向别人请教知识。