Здесь, в этом коде, я принимаю данные в виде массива и вставляю его в базу данных. Поскольку я использую цикл while, у меня есть несколько полей ввода с тем же именем, что и в HTML-коде ниже. Что я хочу сделать, я хочу добавить проверку, что если два поля одинаковы, то ошибка эха, говорящая о двух полях, не может быть тем же самым вложением данных. Я мог бы сделать это, если бы два разных поля ввода для данных вроде if($field1 == $field2){ echo "Error!";
еще вставляли данные. Но здесь поле только одно, дает несколько полей в цикле while. Как я могу добавить эту проверку?Добавление проверки во время записи цикла
HTML код формы:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php while($pro = $priq->fetch()){ extract($pro); ?>
<div class="row tbpad">
<div class="col-sm-3 col-xs-6">
<p><i class="fa fa-caret-right"></i> <?php echo $bk_title; ?></p>
</div>
<div class="col-sm-1 col-xs-1">
<div class="form-group">
<input type="text" class="form-control" name="priority[]" value="<?php echo $pr_priority; ?>">
<input type="hidden" class="form-control" value="<?php echo $bk_id; ?>" name="bkid[]">
</div>
</div>
</div>
<?php } ?>
<input type="submit" class="btn btn-orange" value="Set Priority" name="priority">
</form>
PHP код:
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, он будет перенаправлен на другую страницу в одном запросе на вставку. одна вещь заключается в том, что он не будет работать для нескольких запросов на вставку – dev
сначала правильно поймите вопрос ... затем ответьте, только если вы знаете ответ ... из-за какого-либо предложения plz должно быть связано с вопросом конкретно .. место, где я используемый window.location будет выполняться только в том случае, если вставка прошла успешно, так как она находится внутри оператора if. Поэтому не о чем беспокоиться. –
Ваш код уязвим для SQL-инъекций, вы должны использовать подготовленные операторы –