![](/img/trans.png)
[英]PHP $$var['index'] = something; fails, although I thought it would work just like $$var = something; does
[英]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.