即使数组包含所有正确的键但1个无效键,提示错误消息

时间:2013-10-09 08:16:17

标签: php

我有一个功能让用户键入以逗号分隔的多个折扣代码。问题是,如果用户键入一个有效密钥和一个无效密钥,它仍然会通过系统,因为mysql_num_rows检测到db中的有效密钥大于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>";
}

2 个答案:

答案 0 :(得分:0)

你可以尝试

if (mysql_num_rows($row) < count($dc_array)){

答案 1 :(得分: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>";
}