mysql — обновить многорядный PHP с тем же значением

Я извлекаю несколько строк из одной таблицы и отображаю их в виде таблицы в виде -> Нажмите здесь для просмотра изображения <-

В базе данных значение «status» установлено как «pending», поэтому я хочу выбрать нескольких студентов и изменить «status» на «Approved», а затем сделать одно обновление, которое обновляет каждую строку, которую я проверял.

Это мой код для изображения выше …

        <?php
include("connection.php");echo "<table border='1'><tr>

<td><strong>Student ID</strong></td>
<td><strong>Student Name</strong></td>
<td><strong>Kelompok</strong></td>
<td><strong>Block</strong></td>
<td><strong>Level</strong></td>
<td><strong>House</strong></td>
<td><strong>Status</strong></td></tr>";
$i=0;
while ($ww=mysqli_fetch_array($query))
{
if ($i%2==0)
$class="evenRow";
else
$class="oddRow";

$id=$ww[0];
$studentid=$ww[1];
$name=$ww[2];
$kelompok=$ww[8];
$block=$ww[9];
$level=$ww[10];
$house=$ww[11];
$status=$ww[14];echo "<tr>
<input type=hidden name=applyid[] value=".$id."/>
<td>$studentid</td>
<td>$name</td>
<td>$kelompok</td>
<td>$block</a></td>
<td>$level</td>
<td>$house</td>
<td>
<input type=checkbox name=status[] value=".$id."approved checked> APPROVED <br>
</td>
</tr>";
}
$i++;
echo "</table>";

?>

<br>

<a href="officerapplicationupdate.php?applyID=<?php echo $id; ?>"><input type="submit" value="Update"></a>
</form>

<br><br>
</table>

и это код для обновления строки ..

<?php

include("connection.php");if(isset($_POST["submit"]) && $_POST["submit"]!="") {
$idCount = count($_POST["status"]);
for($i=0;$i<$idCount;$i++) {
mysqli_query("UPDATE application SET apply_status='".$_POST["status"][$i]."'
WHERE apply_id='".$_POST["applyid"]."'");
}
}

?>

0

Решение

Вы можете подготовить свое заявление и выполнить его впоследствии. Это можно сделать так:

   $in = array();
if(isset($_POST["submit"]) && $_POST["submit"]!="") {
$idCount = count($_POST["status"]);
for($i=0;$i<$idCount;$i++) {
$in[] .= $_POST["applyid"][$i];
}
}
mysqli_query("UPDATE application SET apply_status='approved' WHERE apply_id IN '".implode(",",$in)."'");

Так что нужен только один запрос.

Вы также можете суммировать изменения для других apply_status.

Будьте внимательны, чтобы проверить поступление ввода с веб-страницы, чтобы предотвратить внедрение SQL!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]