ここでは、このコードではデータを配列として受け取り、データベースに挿入します。 Whileループを使用しているので、私は以下のHTMLコードで見られるのと同じ名前の複数の入力フィールドを持っています。私がしたいことは、2つのフィールドが同じで、2つのフィールドが同じであることができないというエコーエラーがある場合、データを挿入するというチェックを追加したいと思います。 if($field1 == $field2){ echo "Error!";
他のデータを挿入するようなデータの2つの異なる入力フィールドがある場合、私はそれを行うことができます。しかし、ここでは、フィールドはwhileループ内に複数のフィールドを与えるものです。どうすればこの小切手を追加できますか? $の優先順位を使用すると、$ _POST [ '優先']から取得する配列であるので、あなたが次のことを行うことができwhileループでのチェックインの追加
if(isset($_POST['priority'])){
$priority = (!empty($_POST['priority']))?$_POST['priority']:null;
$bkid = (!empty($_POST['bkid']))?$_POST['bkid']:null;
$iNumSets = count($priority);
for($i = 0; $i < $iNumSets; $i++){
$str = "INSERT INTO priorities(pr_book, pr_by, pr_priority)
VALUES('$bkid[$i]', '$sess', '$priority[$i]')";
$res = $PDO->prepare($str);
$res->execute();
if($res){
echo '<script>alert("Priority added successfully!");window.location = "view-order.php";</script>';
}else{
echo '<script>alert("Server Error! Please try back later.");window.location = "add-order.php";</script>';
}
}
}
ループ内でwindow.locationを使用した場合、1つの挿入クエリで別のページにリダイレクトされます。 1つのことは、複数の挿入クエリでは機能しないということです。 – dev
最初は正しく質問を理解しています...答えを知っている場合にのみ回答してください...任意の提案に対してplzは具体的に質問に関連しています。使用されたwindow.locationは、if文の内側にあるので挿入が成功した場合にのみ実行されます。それで心配することはありません。 –
あなたのコードはSQLインジェクションに対して脆弱です。準備文を使用する必要があります –