PHPの勉強で、ECサイトを作っています。

作成したテーブルの中に下記のものがあります。
======================
新着フラグ new tinyint unsigned
キズ有り outlet tinyint unsigned
======================
商品を登録するときはチェックボックスで選択し、
データは整数で登録したいのですが、

新着は(新着=1 違う=2)
キズは(キズ有り=1 キズ無し=2 少し有り=3)

このデータを呼び出し、【新着! キズ無し】
のような感じで表示する時はどういったやり方がよいのでしょうか?

if文などでまとめた定義ファイルを作るものなんでしょうか?
また、その場合、例になるソースを教えていただけると助かります。

回答の条件
  • 1人2回まで
  • 登録:2007/11/04 20:36:50
  • 終了:2007/11/08 19:11:13

回答(2件)

id:t_shiono No.1

t_shiono回答回数256ベストアンサー獲得回数222007/11/04 21:19:37

ポイント35pt

そのような表示を行う箇所がどの程度出現するかによると思います。

出現が1度しかなければ、多少強引でも、単純にif文で処理すると思います。

また、何らかのフレームワークは利用していますか?

実際の表示部分は、各フレームワークによって対処が異なるかと思います。


あくまで自分の場合ですが、

Smartyを利用していれば、

その表示を行うテンプレートを容易して、includeすると思います。

{include file="comment.tpl" is_new=新規フラグ has_damage=傷フラグ}

みたいな感じです。

こうしておいて、テンプレートの中身は多少複雑になっても、処理がちょっとしかないので、見通しがよいです。また、フラグの追加・変更も修正箇所が一度になってよいです。


cakePHPを利用していれば、

コンセプトは同等ですが、helperを作成します。

こちらも、利点は同様です。


PHPのみで処理しているのであれば、なんらかの出力関数を用意してあげるのがよいのではないでしょうか?

出力するPHPから共通にrequireするPHPファイル(例えば、common.php)を作成して、次のような関数を定義し、

function showComment($status) {
  if (status['new'] == 1) {
    if (status['outlet'] == 0) {
   echo "【新着 キズなし】"
    } else {
    }
  } else {
  }
}
※関数内はいい加減です。分岐のパターンによって効率的に直してください。
※statusをarrayで渡しているのは、statusの内容の追加・変更があった場合に変更が少なくて済む用にです。

出力側では、

require_once ("common.php");

 新規フラグ, 'outlet' => キズフラグ)); ?>

みたいな感じです。

いかがでしょうか?

id:yossui_coll

PEARやフレームワークなどは使わず、PHPのみで処理しようと思っています。

質問の文字数で大分削ってしまいましたが、自分が考えていたのも、

ほぼ同じものです。選択肢系は変数=配列で定義しておいて、

require_onceで呼び出すと。

一般的なやり方っぽいというのがわかって良かったです。

ありがとうございました。

2007/11/04 22:31:16
id:onotorape No.2

onotorape回答回数6ベストアンサー獲得回数02007/11/04 21:02:53

ポイント35pt

データの検査は終了し、安全だと考える場合では、私は配列を使いますね。

データの検査は、通常のifで判断します。(参考にするために、判定の形式を2種類で書いてみました)


if( $new != 1 && $new != 2 ) { エラー処理 }

if( $outlet < 1 || $outlet>2 ) { エラー処理 }

$a = array('','新着','違う');

$b = array('','キズ有り','キズ無し','少し有り');

echo $a[ $new ];

echo $b[ $outlet ];

こんな感じでいかがでしょうか。

ちなみに、私が作成しているECサイトでは、このような手法で行っています。(ソースは見れないけど、動作確認はできるかも)

http://gigax.jp

id:yossui_coll

自分が考えていたのもほぼ同じものですね。

こういったやり方が多かったんですね。

安心しました。ありがとうございます。

2007/11/04 22:31:29

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

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

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

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

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