[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('テーブル名')

などと。

 長文になりましたが、すみません。よろしくお願いいたします。