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

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

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

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

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

●質問者: yossui_coll
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ECサイト PHP ソース チェックボックス データ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● t_shiono
●35ポイント

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

出現が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' => キズフラグ)); ?>

みたいな感じです。

いかがでしょうか?

◎質問者からの返答

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

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

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

require_onceで呼び出すと。

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

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


2 ● onotorape
●35ポイント

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

データの検査は、通常の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

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



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