PHP MySQL更新不同数量的输入

时间:2011-11-26 04:58:46

标签: php mysql

我想知道如何用不同的输入量更新不同记录的数据库数据,我想要做的是创建一个列出具有相同属性的记录的系统,你可以选择改变其中的任何信息。

像管理员选项那样列出所有成员,你可以更改他们的活动和非活动状态。

我每次更新都会记录一条记录,但从未尝试过多次更新记录。

<table width="760px">
<?
$result = mysql_query('SELECT * FROM members WHERE (post != "1") AND (team = "'.$teamname.'")');

while($row = mysql_fetch_array($result))
{
$post = $row['post'];

echo '<tr>
    <td width="120px">'.$row['username'].'</td>
    <td width="20px">:</td>
    <td>
<select class="inputboxr" style="width: 206px;" name="rank">
  <option value="2" ';Ppost('2'); echo'>Vice Captain</option>
  <option value="3" ';Ppost('3'); echo'>P.R. Officer</option>
  <option value="4" ';Ppost('4'); echo'>Senior Members</option>
  <option value="5" ';Ppost('5'); echo'>Members</option>
  <option value="0" ';Ppost('0'); echo'>New Recruit</option>
  </select>
  </td>
</tr>';
}
?>
</table>

但如果我要提交此表格,我不能使用$ _POST ['rank'];对于每个成员将有不同的记录,所以应该像user1,user2,user3的rank1,rank2,rank3。我只是不确定应该怎么做,任何帮助:)?

enter image description here

所以这是一个图像示例,当我有多个用户使用相同的字段名进行更新时,我该如何编写我的更新mysql?

1 个答案:

答案 0 :(得分:2)

单一查询

update members
set blah = 
(
  case username
  when ... then "$val1"
  when ... then "$val2"
  end
)
where username in (...);