while ($row = mysql_fetch_assoc ($query))
{
//retrieve code from database to match with the code that was put into field
$dbcode = $row['code'];
}
Этот блок кода не собирает все коды. Он просто перезаписывает $ dbcode каждым кодом, а в конце блока остается только последняя строка.
Я предполагаю, что остальная часть кода должна быть внутри этого блока.
}
else
echo "Invalid coupon code.";
}
else
echo "";
У этого второго оператора echo в конце также должно быть сообщение, которое, я думаю, было бы неверным кодом, поскольку оно основано на if ($numrows !=0)