わかりました、私はここで非常に立ち往生しています。私はこれを完全に間違って見ている可能性があります (まだ初心者のようなものです)。
ここの一番下に、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();
}