[PHP+Mysql]

select文で、updateをループさせる事は可能でしょうか?
もし出来ないという事ならその代替方法をお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/18 00:00:17
  • 終了:--

回答(3件)

id:kekekun No.1

kekekun回答回数13ベストアンサー獲得回数02004/11/18 01:33:20

ポイント20pt

質問を推測しますにデータベースを連続更新したいと言う事でしょうか?

MySQLをPHPから使われているのであれば

PHPのfor文、もしくはWhile文でupdateのSQLを必要なだけ呼んでやればよいのではないでしょうか?

id:akame

ご回答ありがとうございます。

はい、その通りです。forやwhileの中にupdateを入れると、その時点でエラーになってしまうのです。。

2004/11/18 10:39:02
id:upride No.2

upride回答回数220ベストアンサー獲得回数12004/11/18 01:52:50

ポイント30pt

$MyQuery = ”SELECT 〜 ”;

$MyResult = mysql_query( $MyQuery , DB接続記述 );

while($MyData = mysql_fetch_array( $MyResult , MYSQL_ASSOC ))

{

$MyQuery = $MyData[キー項目]をWhere句に配したUPDATE文 〜

mysql_query( $MyQuery , DB接続記述 );

}

こんな感じで

PHPのソースとして実現するのが宜しいかと

select文で取得した結果をループさせて

それをもとにUpdate文を実行していきます

他の手法としては

MySQL4から? 確かストアドプロシージャが

扱えるようになったはずですので

そちらで実装してみるのもよろしいかと

id:akame

ご回答ありがとうございます。

なるほど、、selectはwhileの中に入れられるという事ですね!再トライしてみます。

2004/11/18 10:47:16
id:masal No.3

masal回答回数43ベストアンサー獲得回数02004/11/18 11:30:19

ポイント25pt

PHPにデフォルトで組み込まれている、PEARクラスの「DB_common::executeMultiple()」メソッドを使うのか簡単でスマートです。

リンク先にサンプルコードがあります。

PEAR本家の日本語マニュアルは現在見られないのですが、1x1さんの日本語訳のお世話になれるとおもいます。

http://pear.php.net/

PEAR :: The PHP Extension and Application Repository

id:akame

ご回答ありがとうございます。

updateをループさせる事は可能になりました。

別の選択肢として、大変有益な情報をありがとうございます。

これにて終了させていただきます。

2004/11/18 12:24:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません