- ベストアンサー
ポータルサイトの詳細画面作成について
- ポータルサイトの詳細画面の作成方法について質問です。
- 現在ポータルサイトの詳細データの表示が手間取っています。
- ディテイル画面のフィールド表示方法についてアドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
この「面倒くさい」作業をどこまでを面倒くさいとするか、なんですけど、例えば下記のような方法 <?php $var_defines = array( 'head' => array('filed名', 'field名'), 'photo'=> array('field名', 'field名'), ); //といった感じで、語群リストのようなものを作っておいて、 //可変変数を使って変数を展開する。 foreach($var_defines as $key => $fields){ foreach($fields as $field){ ${$key . "_" . $field} = isset($row[$field]) ? $row[$field] : ""; //つまり、$key = 'head', $field = 'name'だったら、 //$head_nameという変数が作られ、そこにフィールドの値が代入される。なければ空文字が代入される } } //とここまでやったなら、使いたい変数は先に定義されている物からチョイスされるはずなので //単純な変数で取得できるようになります。 echo $head_name; echo $photo_smallimage; //みたいなね。 ?> 先に定義したい内容の塊(設定的な物)を書いておいて、設定によって書き換えて、その値が存在していることを約束させちゃえば、毎回issetとか、array_key_existなんかで、あるかどうかを確認しないですむので、HTMLに挿入したいテンプレート側ではある程度スマートにかける、とかそういう感じです。
その他の回答 (1)
- hogehoge78
- ベストアンサー率80% (433/539)
その情報だけではなんとも言えないんですが、 <?php foreach($row as $value){ echo $value; } ?> でもフィールドの内容を呼び出せそうです。 ある特定の項目は、横並びにしなければいけないとか、変則的なルールがあったりすると、また別の方法を考えなければいけないと思いますが。
補足
結構変則的です…。 リンクになってたりなってなかったり 写真を表示したり…。 foreachに掛ける前に、連想配列名を $row['head_フィールド名1'] $row['head_フィールド名2'] $row['head_フィールド名3'] $row['photo_フィールド名4'] $row['photo_フィールド名5'] $row['photo_フィールド名6'] とジャンル名を付け加える方法が思いつきましたが 連想配列名を再定義するのが結構な作業で あんまり、意味ないような気もして 迷っているところです。