[PHP-users 13831] Re: 関数の戻り値の使い方
tamura
php-users@php.gr.jp
Fri, 07 Mar 2003 19:26:42 +0900
田村です、まいど。
キタムラさん、お世話をかけます。
> $COL_DATSと$WHEREの部分はプログラマー(かそのバックにいるユーザ)が
> 「ある条件に該当する、あるカラムの値をある値に変更したい」という意志(要望?)の部分じゃ
> ないですか。
はい、そうです。
>
> その「あるカラムの値をある値に変更したい」というプログラマーの意志を自動生成する
> と言うのが私には理解できないのです。必要性を感じられないのです。
>
> 一連のメールを全て読んでなく回答した私も悪いのですが、$COL_DATSを自動生成する必要の
> あるシチュエーションをもう一度、説明してくれませんか?
恐れ入ります。よろしくお願いいたします。
(※商品IDは、ユーザーの知らないもので、ユーザーは商品コードを使います。
その理由は経験上、ユーザーは途中で、ユーザーコードの変更を望みますが、そ
の対策として、UNIQUEな商品ID項目を使用します)
以下のような商品(修正)画面、
商品ID 商品コード 商品名 商品説明
修正ボタン 1 いろは あいうえお abcdefgh1
修正ボタン 2 にほへ かきくけこ abcdefgh2
修正ボタン 3 とちり さしすせそ abcdefgh3
で、ユーザーが
修正ボタン 2 よたれ かきくけこ opqrstuvw
として、修正ボタンを押した場合、
商品コードと商品説明に修正を加えなければなりません、、、、
整理していて、今気がつきました。どの項目が修正になっていようがいま
いが、全項目(商品コード、商品名、商品説明)を修正すればいいんですよネ。
まことに、お恥ずかしい!
実行部では、
$COL_DATS = array (category_code=>$category_code, category_name=>$category_name, category_explain=>$category_explain);
として全項目を指定して、と教えていただいていましたのに!
ここから、質問に切り替えさせてください。
通常は、実行部に
$sql = "UPDATE tbname SET category_code='$category_code', category_name='$category_name', category_explain='$category_explain' WHERE category_id=$category_id";
$result = mysql_query($sql);
とします。そしてテーブルが変わるたびに
$sql = "UPDATE tbnameA SET fdname1='$fdname1', Bfdname2='$Bfdname2',
fdname3='$fdname3' WHERE fdname0=$fdname0";
とか
$sql = "UPDATE tbnameB SET fdnameB='$fdnameB', fdnameC='$fdnameC',
fdnameD='$fdnameD' WHERE fdnameA=$fdnameA";
などとします。しかし、テーブル名は、変数$tbnameに、利用するテーブル名を
$tbname=tbnameAや $tbname=tbnameB
とすることで、すみます。項目名も、このような利用をしたいと、関数の作成を
試みました。
その関数をupdatesql()として
$sql=updatesql('テーブル名')
などと。
長文になりましたが、すみません。よろしくお願いいたします。