The variable
texture you are using doesn't change during that loop so you are attempting to set the same texture for each item. I would image a quick fix would be to change the line:
Code:
strvars["eICO" .. key]:SetTexture(texture)
to:
Code:
strvars["eICO" .. key]:SetTexture(select(10, GetItemInfo(value)))
Based on what you posted there is a better way to do this so post the rest of your code.