簡體   English   中英

PHP如果其他無法正常工作,就像我認為的那樣

[英]PHP If Else Not working like i thought it would

好吧,我非常困在這里,我可能正在看這個完全錯誤的東西(仍然是個新手)或超級關閉,只是缺少了一些我無法告訴的東西。

在底部,您將找到帶有If ElseIf Else語句的代碼。 我只是做不到我想要的。 所以我希望有人可以幫助我朝正確的方向發展。

在“是否”上進行檢查,以確保輸入的促銷代碼在數據庫中並且該部分有效。

在elseif上,我希望它查看數據庫並找到促銷代碼,並確認沒有與此促銷代碼相關聯的電子郵件地址。 它在查詢中使用IS NOT NULL的方式適用於該促銷代碼中有電子郵件地址的情況,但是當該促銷代碼中沒有任何內容時,它仍然表示存在並提供了今天的提交數據,但是我可以確保數據庫中沒有任何內容。

這就是我的問題所在,這是我做錯了嗎?有沒有更好的方法來完成我在這里要做的事情? 還是我只是忽略了一些小東西?

        $promosql = "SELECT * FROM formdata WHERE (promoCode = '$varPromo')";
        $promoraw = $mysqli->query($promosql);

        $dupesql = "SELECT * FROM formdata WHERE (promoCode = '$varPromo' AND email IS NOT NULL)";
        $duperaw = $mysqli->query($dupesql);

        if($promoraw->num_rows <> 1) {
            //echo ("$varName already exists in $varAddress \n");
            $promo .= "$varPromo is not a valid promocode \n";
        } 
        elseif($duperaw->num_rows > 0) {
            //echo ("$varName already exists in $varAddress \n");
            $dupe .= "$varPromo has already been used on $varDate \n";
        } 
        else {
        $sql = "INSERT INTO formdata (promoCode, name, email, address, city, state, zip, submitDate) VALUES (".
                        PrepSQL($varPromo) . ", " .
                        PrepSQL($varName) . ", " .
                        PrepSQL($varEmail) . ", " .
                        PrepSQL($varAddress) . ", " .
                        PrepSQL($varCity) . ", " .
                        PrepSQL($varState) . ", " .
                        PrepSQL($varZip) . ", " .
                        PrepSQL($varDate) . ")";
        $mysqli->query($sql);

        header("location: index.php?success=1");
        exit();
        }

試試這個查詢:

SELECT email IS NULL or email = '' has_email FROM formdata WHERE promoCode = '$varPromo'

然后您的PHP可以執行以下操作:

if ($promoraw->nul_rows == 0) {
    // Not a valid promo code
} else {
    $row = $promoraw->fetch_assoc();
    if ($row['has_email']) {
        // Promo code has been used
    } else {
        // Insert into table
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM