如何一次更新多行

时间:2018-10-15 05:48:32

标签: php mysqli escaping

我有下面的代码,我想一次更新多行,但不起作用。 有人可以帮我吗? 它显示未初始化的字符串偏移量,我怎么了? 我有下面的代码,我想一次更新多行,但不工作。 有人可以帮我吗? 它显示未初始化的字符串偏移量,我怎么了?

$con = mysqli_connect("localhost","root","","test");
$con->set_charset("utf8");

// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  };

$sql="SELECT * FROM test";
$result=mysqli_query($con,$sql);
// Count table rows
$count=mysqli_num_rows($result);

// Check if button name "Submit" is active, do this
if(isset($_POST['Submit']))
{

$count=count($_POST["id"]);
for($i=0;$i<$count;$i++){
$id = mysqli_real_escape_string($con, $_POST['id'][$i]);
$name = mysqli_real_escape_string($con, $_POST['name'][$i]);
$lastname = mysqli_real_escape_string($con, $_POST['lastname'][$i]);
$email = mysqli_real_escape_string($con, $_POST['email'][$i]);

$sql1="UPDATE test SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]' ";
$result1=mysqli_query($con,$sql1);
}
}


?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<?php
$ss="SELECT * FROM test";
$rr=mysqli_query($con,$ss);

while($rows=mysqli_fetch_array($rr)){
?>
<tr>
<td align="center">
<input name="id[]" type="hidden" id="id" value="<?php echo $rows['id']; ?>">
</td>
<td align="center">
<input name="name[]" type="text" id="name" value="<?php echo $rows['name']; ?>">
</td>
<td align="center">
<input name="lastname[]" type="text" id="lastname" value="<?php echo $rows['lastname']; ?>">
</td>
<td align="center">
<input name="email[]" type="text" id="email" value="<?php echo $rows['email']; ?>">
</td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>

那我该怎么办?

1 个答案:

答案 0 :(得分:0)

您将输入字段命名为“ id []”,“ name []”,“ lastname []”,“ email []”,但随后尝试使用“ id”,“ name”从帖子变量中获取它们','姓氏','电子邮件'。

HTML表单在输入元素上使用name属性来命名发布变量。因此,除非您将输入内容更新为不同的名称,否则您必须使用“ id []”,“ name []”,“ lastname []”,“ email []”访问帖子值。

相关问题