首页 > 解决方案 > MySQL:无线电检查插入具有多行的数据库

问题描述

我想将两个不同的数据插入到具有不同行的表中。如果只有一个数据,就可以做到。当两个数据像图片中一样时,就会出现问题。

这是我的显示 html。 在此处输入图像描述

foreach ($rows as $row) {
        <tr>
            <input type="hidden" id="roomID" name="roomID" value="<?php echo $row['roomID']?>">
            <td style="text-align:center"><?php echo $i++?> </td>
            <td><?php echo $row['room_name']?></td>
            <td style="text-align:center"><?php echo $row['number_room']?> </td>
            <td style="text-align:center"><input type="radio" name="status[<?php echo $i; ?>]" id="status" value="1" required> Available</td>
            <td style="text-align:center"><input type="radio" name="status[<?php echo $i; ?>]" id="status" value="2" required> Not Available</td>
        </tr>
 }

这是插入数据库。我曾尝试使用foreach循环插入到表中,但它只插入一个数据。

$data = $_POST['status'];
$id = $_POST['roomID'];

    $sql = 'UPDATE `booking_room` 
     SET `available` = '.$data.'
    WHERE id_hotelroom = '.$id.'';

    mysql_query($sql);

有没有其他我没有注意到/图可以解决问题的解决方案?谢谢你。

标签: phpmysql

解决方案


试试这个代码:

foreach ($rows as $row) { ?>
            <tr>
                <input type="hidden" id="roomID" name="roomID[]" value="<?php echo $row['roomID']?>">
                <td style="text-align:center"><?php echo $i++?> </td>
                <td><?php echo $row['room_name']?></td>
                <td style="text-align:center"><?php echo $row['number_room']?> </td>
                <td style="text-align:center"><input type="radio" name="status<?=$row['roomID']?>[]" id="status" value="1" required> Available</td>
                <td style="text-align:center"><input type="radio" name="status<?=$row['roomID']?>[]" id="status" value="2" required> Not Available</td>
            </tr>
     <?php } 


foreach ($_POST['roomID'] as $key => $roomID) {
    $roomID =  $roomID;
    $status =  $_POST['status'.$roomID][$key];

    $sql = "UPDATE `booking_room` SET `available` = '".$status."' WHERE id_hotelroom = '".$roomID."'";

    mysql_query($sql);
}

推荐阅读