The problem with this code is :
That the formatting and indenting are terrible. Make the code easy to read by putting each { on a new line, by putting each } on a new line, by putting no more than one statement on a line, and by using Tools + Auto format to fix the horrid indenting.
- the tag read at rfid shows 1 by 1 at the LCD and Serial Monitor
Because that's how you tell it to appear. How do you want it to appear?
- serial monitors shows unknown number (the one i mark with yellow color)
They are not unknown. You just don't know what they mean.
You check that there is data to read, before reading it. So, Serial.read() will never return anything in the high byte of the int it returns. The portion that you are interested in is the low byte. So the variable that you store the low byte in should be byte sized, such as uint8_t, byte, or char. Since the data is all character, I'd use char. But, that's just me.
Serial.print()ing an int causes it to be converted to a string. Serial.print() of a char that contains the same value as the int will produce quite different output, and I suspect that is the output you are expecting.
- currently i connect the buzer with pin 9, are im doing it right? or not...
Unlikely, since you appear to have the LCD connected to pin 9, too.
You have not declared pin 9 to be an output, nor do you have any code that affects pin 9.