0

OK、これはできると確信しています。この投稿で似たようなものを見まし た。MySQL で複数の行を更新しています。

だから私が確認する必要があるのは、私が自分のためにそれをどのように書くかということです. スタッフ メンバーの主要な場所と、関連する他のオフィスの場所をリストするデータベースがあります。1 人のスタッフ メンバーの情報を保持するテーブルを更新できるようにしたいのですが、何回ループする必要があるか正確にはわかりません。

たとえば、サリーがいて、彼女はセントポールとシカゴの 2 つのオフィスに所属しているとします。次に、ニューヨークのみに関連するピーターがいます。

テーブルは次のようになります

Sally 主キー 101 の場合
LocationID 1 StaffID 1 PrimaryLoc 1

主キー 102
LocationID 2 StaffID 1 PrimaryLoc 0

Peter の場合 主キー 103
LocationID 3 StaffID 2 PrimaryLoc 1

私は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 は 1 秒あたり 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 に答える