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


Prompt error message even though array contains all correct key but 1 invalid key

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

试试

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

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>";
}