A binary chop search requires the data to be sorted, and sorted in the right way.
It helps if the data is all text or all numeric, but might get complicated if it's a mixture.
Your search code seems ok in principle.