У меня есть информация в базе данных, которая использует тот же FK, но уникальный PK, и поэтому я зацикливаю ее для отображения на странице.И я хотел построить SQL Update Query, чтобы иметь возможность его обновлять.Теперь у меня есть 2 цикла, но я не уверен, как полностью объединить их, чтобы они работали в одном.
Что мне не хватает или что мне нужно сделать, чтобы получить результаты, которые янужно чтобы при запуске кода обновлялось уникальное поле, которое нужно обновить?Стоит ли использовать цикл for-each внутри другого цикла for-each?
Это код для подключения и получения информации из базы данных, а затем цикл для отображения значений и идентификатора.fields.
//connect
$sql_awards = "select `awards`, `awardsid` from inf_awards where inf_id = $vId";
$rs_awards = mysqli_query($vconncvnl, $sql_awards);
//display inputs
while ($rs_awards_rows = mysqli_fetch_assoc($rs_awards)) {
echo '<input type="text" name="awardact[]" id="awardact" class="awardactadd" value="' . $rs_awards_rows['awards'] . '">';
echo '<input type="hidden" name="txtaward[]" value="'. $rs_awards_rows['awardsid'] .'">';
}
Так что теперь я могу получить информацию на странице процесса, у меня также есть оператор обновления SQL и зацикленный
цикл foreach, который я использовал для отображения идентификатора наград, а затемцикл foreach для sql Code
//construction of loop for the awardsID field
$awardsId = '';
$award = $_POST['txtaward'];
foreach ($award as $awardid){
$awardsId .= $awardid;
}
//construction of the loop for building the SQL Update Query
$sql_up_award = '';
foreach ($vaccolates as $valuesawards) {
$sql_up_award .= sprintf("UPDATE inf_awards SET awards = %s WHERE inf_id = $vid AND awardsid = $awardsId ; ". "<br>", escapestring($vconncvnl, $valuesawards,'text'));
}
, но когда я делаю это таким образом, это дает мне
UPDATE inf_awards SET awards = 'john smith honorary' WHERE inf_id = 2 AND awardsid = 23;
UPDATE inf_awards SET awards = 'Best scorer' WHERE inf_id = 2 AND awardsid = 23;
я предполагаю, что это является причиной предыдущего цикла теперь, когда я его вызываюв нем будут просто зацикливаться все значения, которые соответствуют требованию, которое на данный момент равно «23», однако
Результаты, которые я бы хотел получить, будут такими, как
UPDATE inf_awards SET awards = 'john smith honorary' WHERE inf_id = 2 AND awardsid = 2;
UPDATE inf_awards SET awards = 'Best scorer' WHERE inf_id = 2 AND awardid = 3;