0

我有一个功能可以让用户输入以逗号分隔的多个折扣代码。问题是如果用户key在一个有效key和一个无效key中,它仍然会通过系统,因为mysql_num_rows检测到db中的有效key大于0。

如何做到即使用户输入了多个有效密钥但一个无效密钥,它仍然会提示错误消息,它不会进入else语句。

$dc_input = $_POST['discount_code'];
$dc_delspaces = preg_replace('/\s+/', '', $dc_input);
$dc_array = explode(',', $dc_delspaces);

$row = mysql_query("SELECT * FROM discount_code WHERE disc_code IN('" .implode( "','", $dc_array )."')") or die(mysql_error());

if (mysql_num_rows($row) == 0){
$invalid_code = "<p style=\"color:red\"><b>Invalid Code!</b></p>";
}
4

2 回答 2

0

你可以试试

if (mysql_num_rows($row) < count($dc_array)){
于 2013-10-09T08:44:00.813 回答
0

比较mysql_num_rows($row)_count($dc_array)

如果两者不相同,您可以确定数组中的任何或更多代码$dc_array无效

if (mysql_num_rows($row) == count($dc_array)){
    echo "All codes are valid";
} else {
    $invalid_code = "<p style=\"color:red\"><b>Invalid Code!</b></p>";
}
于 2013-10-09T08:44:33.300 回答