我想将两个不同的数据插入到具有不同行的表中。如果只有一个数据,那就可以完成。当两个数据如图片中所示时,会发生此问题。
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);
还有其他我没有注意到/可以解决的问题的解决方案吗?谢谢。
答案 0 :(得分:0)
最好的方法是循环。但是需要在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']"
。两者都检查。
答案 1 :(得分:0)
尝试此代码:
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);
}