Unknown column 'TEST' in 'field list' |?
Вы не заэкранировали строку.
Сейчас вы отправляете строку UPDATE `coupon` SET `coupon` = TEST, а нужно TEST засунуть в кавычки, т.е.:mysql_query('UPDATE `coupon` SET `coupon` = "'.$coupon.'" ') or die (mysql_error());
Ну и плохо то, что вы используете устаревшую библиотеку mysql.
Желательно использователь mysqli или еще лучше PDO, при этом использовать prepared statements (подготовленные запросы) - погуглите, что это.
B.S. Да абсолютно насрать что юзаете — ваш выбор.
эскейпить данные надо и в кавычки ставить. 
p.s. используйте PDO!1111