如何更新sql中的多行

时间:2016-09-12 08:53:03

标签: php mysql

我想更新多行而不是所有行。 假设我有超过1000个条目。我想改变只有5个条目的国家。

Sl.No. |  Name  |  Country  | Occupation 
-------+--------+-----------+-----------
  22   | Robin  |   USA     |  Dancer 
  36   | Akash  |  India    |  Dancer  
  98   | David  |    UK     |  Dancer 
 502   |  Raj   | Australia |  Dancer 
 652   |  Bob   |   USA     |  Dancer 

我想将其更改为:

Sl.No. |  Name  |  Country  | Occupation    
-------+--------+-----------+-----------
  22   | Robin  |   Canada  |  Dancer 
  36   | Akash  |   Nepal   |  Dancer   
  98   | David  |   USA     |  Dancer 
 502   |  Raj   |   Kong    |  Dancer 
 652   |  Bob   |   China   |  Dancer 

我获取数据的PHP代码是:

<form method="post" action"">
<table>
<?php 
if(isset($_POST['submit']))
{
 $country=$_POST['country'];
 mysql_query("update regis set country='".$country."' where name='".$b['name']."'");
}
$a=mysql_query("select * from regis where occupation='Dancer'");
while($b=mysql_fetch_assoc($a))
{ $country=$b['country'];?>
<tr>
<td><?php echo $b['slno'] ?></td>
<td><?php echo $b['name'] ?></td>
<td> <input type="text" name="name" value="<?php echo $country ?>"></td>
<td><?php echo $b['occupation'] ?></td>
</tr>
<?php }?>
</table>
<input type="submit" name="submit" value="Submit">
</form>

2 个答案:

答案 0 :(得分:0)

你错过了这一行的单引号:

mysql_query("update regis set country='".$country."' where name='".$b['name']");

应该是:

mysql_query("update regis set country='".$country."' where name='".$b['name']"'");

请提供有关错误和打印变量内容的更多详细信息。

注意:使用mysqli或PDO而不是弃用的mysql

答案 1 :(得分:0)

如果您希望在启动代码时出现error_reporting(E_ALL);错误问题。您将自动获得答案。

他们是一个简单的语法错误上传。只需更改更新查询行:例如

mysql_query("update regis set country='".$country."' where name='".$b['name']."'");