select文で、updateをループさせる事は可能でしょうか?
もし出来ないという事ならその代替方法をお願いいたします。
質問を推測しますにデータベースを連続更新したいと言う事でしょうか?
MySQLをPHPから使われているのであれば
PHPのfor文、もしくはWhile文でupdateのSQLを必要なだけ呼んでやればよいのではないでしょうか?
$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の中に入れられるという事ですね!再トライしてみます。
PHPにデフォルトで組み込まれている、PEARクラスの「DB_common::executeMultiple()」メソッドを使うのか簡単でスマートです。
リンク先にサンプルコードがあります。
PEAR本家の日本語マニュアルは現在見られないのですが、1x1さんの日本語訳のお世話になれるとおもいます。
PEAR :: The PHP Extension and Application Repository
ご回答ありがとうございます。
updateをループさせる事は可能になりました。
別の選択肢として、大変有益な情報をありがとうございます。
これにて終了させていただきます。
ご回答ありがとうございます。
はい、その通りです。forやwhileの中にupdateを入れると、その時点でエラーになってしまうのです。。