mysql:radio-checked插入多行数据库

ijxebb2r  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(395)

我想将两个不同的数据插入到一个具有不同行的表中。如果只有一个数据,就可以做到。当两个数据如图中所示时出现问题。
这是我的显示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将insert循环到表中,但它只插入一个数据。

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

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

    mysql_query($sql);

有没有其他我没有注意到/没有想到的解决办法?谢谢您。

lg40wkob

lg40wkob1#

最好的方法是循环。但是在html中需要做一些修正。

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

然后可以在php中循环和。

<?php 
    $data_array = $_POST['row'];
    foreach($data_array as $row){
        $room_id = $row[roomid];
        $status = $row[status];

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

        mysql_query($sql);
    }
?>

我不确定 name="row[<?=$i?>][roomid]" 或者 name="row[<?=$i?>]['roomid']" . 两个都检查一下。

s5a0g9ez

s5a0g9ez2#

请尝试以下代码:

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);
}

相关问题