"Cheap hotel" is grammatically correct, but it sounds like a bad hotel. "Cheap" often means that something has a low price because it is not very good. Maybe the hotel has bugs in it or maybe prostitutes use it.
"Inexpensive hotel" is also grammatically correct and it makes the hotel sound like a nice hotel that has a good price.
"Economic hotel" is not grammatically correct.
"Economical hotel" is grammatically correct, but people don't use that word as often as "inexpensive".
"Economy hotel" is grammatically correct, but "inexpensive" sounds better. "Economy" can also be used as a noun, so it will sound incorrect to some people.
"Affordable hotel" and "budget hotel" are grammatically correct and sound good.
If you want it to sound like a nice hotel with a good price, use "inexpensive", "budget" or "affordable". If you want it to sound like a bad hotel with a low price, use "cheap".
By the way, it's good that you are asking the question. If you don't know how to say something, it's smart to ask someone who speaks the language. A lot of people don't ask questions and they make bad mistakes. There used to be a store next to my house that had a really funny name, because the owners didn't ask anyone how to say the name correctly in English. It was called "A Video Are Us".