php mysql批量记录更新?

php mysql批量记录更新?,php,mysql,Php,Mysql,我正在尝试更新多个mysql记录,代码如下: <strong>Update multiple rows in mysql</strong><br> <?php $host="localhost"; // Host name $username=""; // Mysql username $password=""; // Mysql password $db_name="test"; // Database name $tbl_name="te

我正在尝试更新多个mysql记录,代码如下:

<strong>Update multiple rows in mysql</strong><br> 

<?php
$host="localhost"; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="test_mysql"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Count table rows 
$count=mysql_num_rows($result);
?>
<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
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td>
<td align="center"><input name="name[]" type="text" id="name" value="<? echo $rows['name']; ?>"></td>
<td align="center"><input name="lastname[]" type="text" id="lastname" value="<? echo $rows['lastname']; ?>"></td>
<td align="center"><input name="email[]" type="text" id="email" value="<? 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>
<?php
// Check if button name "Submit" is active, do this 
if($Submit){
   for($i=0;$i<$count;$i++){
     $sql1="UPDATE $tbl_name 
            SET name='$name[$i]', 
                lastname='$lastname[$i]', 
                email='$email[$i]' 
                WHERE id='$id[$i]'";
     $result1=mysql_query($sql1);
   }
}

if($result1){
header("location:update_multiple.php");
?>
更新mysql中的多行
Id 名称 Lastname 电子邮件
提交应定义该表单(如果已发送)

在选择之前移动更新代码,因为您是第一次查看更新信息,而在更新信息之后,您将一直查看以前的结果

...
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1

);
}

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Count table rows 
...
。。。
//连接到服务器并选择数据库。
mysql_connect(“$host”、“$username”、“$password”)或die(“无法连接”);
mysql_select_db($db_name)或die(“无法选择db”);
如果($提交){

对于($i=0;$iSubmit,如果发送,则应定义该表单

在选择之前移动更新代码,因为您是第一次查看更新信息,而在更新信息之后,您将一直查看以前的结果

...
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
$result1=mysql_query($sql1

);
}

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Count table rows 
...
。。。
//连接到服务器并选择数据库。
mysql_connect(“$host”、“$username”、“$password”)或die(“无法连接”);
mysql_select_db($db_name)或die(“无法选择db”);
如果($提交){
对于($i=0;$i使用
if($Submit){
不是确定表单是否已提交的正确方法

你应使用:

if($\u服务器['REQUEST\u方法]==“POST”)

然后处理提交的值

注意:您应该在显示值之前更新DB

如果($Submit){
不是确定表单是否已提交的正确方法,请确保您阅读了有关
的内容

你应使用:

if($\u服务器['REQUEST\u方法]==“POST”)

然后处理提交的值

注意:您应该在显示值之前更新DB


请确保您阅读了有关

的内容,您需要检查是否使用
$\u POST['Submit']
提交了表单。 您还可以使用隐藏的输入字段来跟踪要更新的每一行:

<input type="hidden" name="id[]" value="<?php echo $row['id']; ?>" />
当然,更新过程应该在从数据库检索行之前执行。换句话说,上述代码应该放在脚本顶部附近。至少在

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

您需要使用
$\u POST['Submit']
检查表单是否已提交。 您还可以使用隐藏的输入字段来跟踪要更新的每一行:

<input type="hidden" name="id[]" value="<?php echo $row['id']; ?>" />
当然,更新过程应该在从数据库检索行之前执行。换句话说,上述代码应该放在脚本顶部附近。至少在

$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

首先,执行
update
命令时,
mysql\u query()
不会返回任何内容。 您可以改为使用
mysql\u impacted\u rows
检索上一次查询更改的行数:


然后,您还应该进行一些重构,比如在显示结果之前移动更新代码,否则如果您已经将输出发送到浏览器,则
标题位置
指令将不起作用。

首先
mysql\u query()
在执行
更新
命令时不会返回任何内容。 您可以改为使用
mysql\u impacted\u rows
检索上一次查询更改的行数:


然后,您还应该进行一些重构,比如在显示结果之前移动更新代码,否则如果您已经将输出发送到浏览器,则
标题位置
指令将不起作用。

是否在单个代码中应用了变量名称

$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
将上述查询更改为

$sql1="UPDATE $tbl_name SET name='".$name[$i]."', lastname='".$lastname[$i]."', email='".$email[$i]."' WHERE id=$id[$i]";

您是否在单个代码中应用变量名称

$sql1="UPDATE $tbl_name SET name='$name[$i]', lastname='$lastname[$i]', email='$email[$i]' WHERE id='$id[$i]'";
将上述查询更改为

$sql1="UPDATE $tbl_name SET name='".$name[$i]."', lastname='".$lastname[$i]."', email='".$email[$i]."' WHERE id=$id[$i]";