人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: akame
●カテゴリ:ウェブ制作
✍キーワード:MySQL PHP SELECT ループ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kekekun
●20ポイント

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

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

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

◎質問者からの返答

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

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


2 ● upride
●30ポイント

$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から? 確かストアドプロシージャが

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

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

◎質問者からの返答

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

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


3 ● masal
●25ポイント

http://www.1x1.jp/php/manual_pear/package.database.db.db-com...

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

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

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

http://pear.php.net/

PEAR :: The PHP Extension and Application Repository

http://www.1x1.jp/

1x1

◎質問者からの返答

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ