Given you're trying to compare with LIKE, I'm guessing that means the each row has a list of zipcodes in that column, not a single zipcode? Given the column name is dynamic, I'm guessing you have different columns for each state too (ie, FLZips, GAZips, etc). If that's the case, then that is not the proper way to design your database. A column should only contain a single value (ie, a single zipcode) per row, and you shouldn't have multiple columns for essentially the same info.
You should have a second table that associates the zipcodes and the state with a business, with a single row per zipcode and state combo. For example:
create table business_zipcodes (
businessId int not null,
Zipcode varchar(10) not null,
State varchar(2) not null
);
You'd then join to that table in your select to search for a particular zip code.
SELECT *
FROM DATA
INNER JOIN business_zipcodes on business_zipcodes.businessId=DATA.id
WHERE
DATA.id=?
and business_zipcodes.State='FL'
and business_zipcodes.zipcode=?
Notice I replaced your variables with ? also. Sticking variables into your query is also another thing you should not be doing (read up on SQL Injection attacks), you should be using a prepared statement with bound parameters.
Your code would end up looking more like this:
$stmt = mysqli_prepare($con, "
SELECT *
FROM DATA
INNER JOIN business_zipcodes on business_zipcodes.businessId=DATA.id
WHERE
DATA.id=?
and business_zipcodes.State='FL'
and business_zipcodes.Zipcode=?
");
mysqli_stmt_bind_param($stmt, 'is', $_GET['id'], $_GET['Business_Zip']);
mysqli_stmt_execute($stmt);
while ($row = mysqli_stmt_fetch($stmt)){
echo '<br><img src="images/Florida.png" style="padding-bottom:8px;">';
}