$sql = " SELECT * FROM users WHERE (age > $agemin) AND (age < $agemax) AND (city '%like%' $city)";
For agemin and agemax, what you have will work. You could also do "WHERE age BETWEEN $agemin AND $agemax"
For the city, thats not going to work. "LIKE" is a SQL statement. You have it wrapped in quotes with the seach character '%' wrapped around it. What you'll want is something like this:
AND city LIKE '%$city%'
Put it all together:
$sql = " SELECT * FROM users WHERE (age > $agemin) AND (age < $agemax) AND city LIKE '%$city%'";