1. There has been countless of times where the situation is like:
"I gave him my heart but he doesn't want it."
I think the thing here is that everyone needs to understand that people aren’t obliged to want it. You giving it and him not wanting it are two different actions with two different reasons. He’s allowed to say no, he’s allowed to not want you and yes it hurts, I’m sorry for that, but he has the right.
Sometimes you think you’re giving a person the entire world but you’re not, sometimes your world is not their world. It's called incompatibility. It doesn't make them a bad person for not accepting what you put out for them. Some things you can't force no matter how much you try. You could give and give and give all of what you have and truth to be told, at the end of the day, he could still not want you and it still wouldn't make him a bad person.
Maybe it is his loss for not being able to cherish something so wonderful but like I've mentioned before, he has the right to what he does and does not want.
2. Along with the same topic as #1, don't ever been too blinded to see what you're giving up way more than you deserve/should.
As much as I wish this to be true, people can be selfish and shitty and once they come to terms with the fact that there's someone who's there for them to step on and push over, most of the time, they will take advantage of it, and by it, I mean you. If you're wondering why, I’m not sure if there’s much of a deeper explanation than that, people are just selfish and shitty. The world isn’t all nice. Some people take good things in life for granted and use people to their own benefit and convenience.
Please remember, it isn't your fault. It isn't that you're "not good enough" or anything along those lines. You're just not what the other person wanted, and this does not mean you're not good enough.