php从多个复选框更新数据

php从多个复选框更新数据,php,checkbox,editing,Php,Checkbox,Editing,我有一个名为horse的表,我想创建一个表单来编辑horse_名称和horse_高度,但是数据无法更新,结果是更新查询有问题,当我打印查询以显示值时,horse_名称值等于horse_高度 <body bgcolor="#009933"> <?php include("connection.php"); $conn = oci_connect($UName,$PWord,$DB); if(empty($_POST["check"]))

我有一个名为horse的表,我想创建一个表单来编辑horse_名称和horse_高度,但是数据无法更新,结果是更新查询有问题,当我打印查询以显示值时,horse_名称值等于horse_高度

<body bgcolor="#009933"> <?php include("connection.php"); $conn = oci_connect($UName,$PWord,$DB); if(empty($_POST["check"])) { $query="SELECT * FROM horse ORDER BY horse_name"; $stmt = oci_parse($conn, $query); oci_execute($stmt); ?> <center> <font face="Arial" size="3"><b>Horse Details</b></font> </center> <form method="post" action="multiplehorsemodify.php"> <table border="1" align="center"> <tr> <th>Horse ID</th> <th>Name</th> <th>Height</th> <th>Edit?</th> </tr> <?php while($row = oci_fetch_array ($stmt)) { ?> <tr> <td><?php echo $row["HORSE_ID"]; ?></td> <td align="center"> <input type="text" size="24" name="<?php echo $row["HORSE_ID"]; ?>" value="<?php echo $row["HORSE_NAME"]; ?>"></td> <td align="center"> <input type="text" size="5" name="<?php echo $row["HORSE_ID"]; ?>" value="<?php echo $row["HORSE_HEIGHT"]; ?>"></td> <td align="center"> <input type="checkbox" name="check[]" value="<?php echo $row["HORSE_ID"]; ?>"> </td> </tr> <?php } ?> </table> <center> <input type="submit" value="Update Selected Titles" /> </center> </form> <?php oci_free_statement($stmt); } else { foreach($_POST["check"] as $horse_id) { echo $horse_id; $query = "UPDATE horse set horse_name = ".$_POST[$horse_id]."horse_height = ".$_POST[$horse_id]." WHERE horse_id = '".$horse_id."'"; echo $query; $stmt = oci_parse($conn,$query); oci_execute($stmt); header("location: multiplehorsemodify.php"); } } oci_close($conn); ?> </body>
马的细节 马的身份证 名称 高度 编辑
两个表单字段的名称相同($row[“HORSE_ID”]),这将导致问题

两个表单字段的名称相同($row[“HORSE_ID”]),这将导致问题

那么,您可以在查询中将
name
height
都设置为
$\u POST[$horse\u id]

$query = "UPDATE horse set horse_name = ".$_POST[$horse_id]."horse_height = ".$_POST[$horse_id]." WHERE horse_id = '".$horse_id."'";
您甚至为输入元素指定了相同的名称:

name="<?php echo $row["HORSE_ID"]; ?>"
并将查询更改为

"UPDATE horse set horse_name = ".mysql_real_escape($_POST['horse_name'][$horse_id])
."horse_height = ".mysql_real_escape($_POST['horse_name'][$horse_id])
." WHERE horse_id = '".$horse_id."'"

那么,您可以在查询中将
name
height
都设置为
$\u POST[$horse\u id]

$query = "UPDATE horse set horse_name = ".$_POST[$horse_id]."horse_height = ".$_POST[$horse_id]." WHERE horse_id = '".$horse_id."'";
您甚至为输入元素指定了相同的名称:

name="<?php echo $row["HORSE_ID"]; ?>"
并将查询更改为

"UPDATE horse set horse_name = ".mysql_real_escape($_POST['horse_name'][$horse_id])
."horse_height = ".mysql_real_escape($_POST['horse_name'][$horse_id])
." WHERE horse_id = '".$horse_id."'"

很抱歉,我如何在这里复制html代码?很抱歉,我如何在这里复制html代码?这样,horse_name和horse_height的值指向list@chandrawib:你真的用上一个版本测试过吗?基本上,您必须为名称创建一个数组,就像您为
check[]
所做的那样。抱歉,耽搁了。这样,horse_name和horse_height的值将指向列表中的最后一匹马list@chandrawib:你真的用上一个版本测试过吗?基本上,您必须为名称创建一个数组,就像您为
check[]
所做的那样。抱歉耽搁了。我该怎么处理这个问题?好了,钱德拉,这有帮助吗?我该怎么处理这个问题?好了,钱德拉,这有帮助吗?
$HORSE_NAME = $_POST['HORSE_NAME'];
$HORSE_HEIGHT = $_POST['HORSE_HEIGHT'];
$HORSE_ID = $_POST['HORSE_ID'];

"UPDATE table_name SET HORSE_NAME = $HORSE_NAME, HORSE_HEIGHT=$HORSE_HEIGHT WHERE HORSE_ID = $HORSE_ID"