Hello i am creating a form where i can update multiple rows in my database
first of all i have a form with a field name "pol", this should carry multiple values as declared below using "[]"
<form action="snooze.php" name="frm" method="post">
<input type="checkbox" name="pol[]" value="<?php echo $row_cert['Policy_Number']; ?>">
</form>
This multiple values, i have been able to display using a for each loop
<?php
if (isset($_POST['pol']))
{
$hobby = $_POST['pol'];
foreach ($hobby as $hobys=>$value) {
echo "".$value."<br /><br />";
}
}
?>
but now i am trying to use this multiple values passed in the for each loop in a where clause to update multiple rows in my database, but it only passes 1 value instead of multiple values as the above code does when echo.
this is what i have tried
<?php
if (isset($_POST['pol']))
{
$db = new mysqli('localhost', '---', '----', '----');
if ($db->connect_error) {
die("Connect Error: " .$db->connect_error); //TODO: better error handling
}
$hobby = $_POST['pol'];
foreach ($hobby as $hobys=>$value) {
$sql = "UPDATE check_niid
SET niid_status = 'Successful'
WHERE Policy_Number = '$hobby[$hobys]'";
}
if (!$db->query($sql)) {
die("Update failed. Error: " .$db->error); //TODO: better error handling
}
}
?>
please what could i be doing wrong here, my aim is to be able to update multiple rows using the where clause