0

好的,我确定可以做到这一点我在这篇文章 Updating multiple rows in MySQL 中看到了类似的内容

所以我需要确定的是我将如何为我的。我有一个数据库,其中列出了工作人员的主要位置以及他们其他相关的办公室位置。我希望能够为单个员工更新包含该信息的表,但我不知道我需要循环多少次。

假设我有 Sally,她与圣保罗和芝加哥的 2 个办公地点相关联。然后我有彼得,他只与纽约有关。

表如下

对于 Sally 主键 101
LocationID 1 StaffID 1 PrimaryLoc 1

主键 102
LocationID 2 StaffID 1 PrimaryLoc 0

对于 Peter 主键 103
LocationID 3 StaffID 2 PrimaryLoc 1

我知道插入一个会是

    UPDATE loc_tbl SET locationID=%s, PrimaryLoc=%s WHERE staffID=%s

所以如果我想循环这个,我会使用这样的for循环吗?... 用于从几个文本框中提取内容的部分。

    for($i=$totalRows; $i>=0;$i--){
    UPDATE loc_tbl SET locationID=%s, PrimaryLoc=%s WHERE staffID=%s  ....
    }

还是有更好的方法来做到这一点?

4

1 回答 1

0

如您引用的帖子中所述,MySql 不支持多个查询: mysql_query() 发送一个唯一查询(不支持多个查询)。

当您在 phpmyadmin 中删除、添加或更新时,它会使用多个查询来执行此操作,我们为什么要采取不同的做法?sql 可以每秒执行 100,000 次查询!参考:http: //yoshinorimatsunobu.blogspot.co.uk/2010/10/using-mysql-as-nosql-story-for.html

我假设你会从表单数组中抛出数据?

$id = ('101','201','301');
$users = array('sally','john','james');
$office = array('Bristol','Bath','London');
$assistant = array('John','Ellen','Richard');

$count = count($users);

for($i=0; $i<$count; $i++) {
    $query = "UPDATE table SET 
    user = '$users[$i]', 
    assistant = '$assistant[$i]',
    office = $office[$i],
    WHERE id = '$id[$i]'";

    mysqli_query($link, $query);
}

这对我有用,将在几分之一秒内完成。

于 2013-09-30T01:58:42.070 回答