• ベストアンサー

同じページを再利用させたい

こんばんは 今回お聞きしたいことは、hoge.phpというファイルがあり そこに hoge.php?id=1とパラメータを付けたんですが 例えば hoge.php?id=1には 名称:テスト 価格:100円 ------------------------------------ さらに hoge.php?id=2には 詳細:うんぬん と表示させたいのです テストと100円とうんぬんという文字はMYSQLのデータから表示させてます 名称: 価格: 詳細: はテーブルで固定させているので id=2にいったときに、 名称: 価格: 詳細が表示されてしまいます。 (id=2にいったとき名称と価格は表示させたくないんです) ご指導よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rinmane
  • ベストアンサー率56% (64/113)
回答No.3

DBテーブルはどういった構成でしょうか。 もしも  id | name | price | detail このような構成なら、  nameに値があれば、名称表示  priceに値があれば、価格表示  detailに値があれば、詳細表示 とできるのではないでしょうか。 php上で分岐させても良し、Smarty上で分岐させても良しです。 php上で分岐させて出力するhtmlそのものを分けても良いですね。 htmlの内容がどの程度変わるかで、上のどれかを選べば良いと思います。 以上、ご参考になりましたなら幸いです。

noname#193034
質問者

お礼

DBテーブルはそのような感じです。 Smartyとか使ったことないのでわからないので、 if文でnameに値があれば、名称表示するというやり方で無事解決できました。 本当感謝です。ありがとうございました

その他の回答 (3)

  • xyz951
  • ベストアンサー率18% (15/79)
回答No.4

switch文で多分岐させればいい。 if文だと分岐が増えてきたときに扱いの勝手が悪い。 やるにしてもifで単発で使うより if~elseifを使った方がスマートでしょう。 セキュリティー的に$_REQUEST[id]を直接使うのは(if文にしてもその後の処理にしても)まずいですね。 最低限、所得したデータに関してはエスケープ処理をしましょう。

noname#193034
質問者

お礼

お返事ありがとうございます。 if文で表示することができました。 ありがとうございました

  • koke29
  • ベストアンサー率58% (114/196)
回答No.2

あー idが複数あるんですね idが固定なら配列に $id1 = array(1,54,50,12,35); として if(in_array($_REQUEST[id],$id1)){ で、「とりあえず例示したものについて」は出来ますよ idのルールみたいのがわかれば他にいい方法がありそうなんですが ルールがわからないので↑みたいなアドバイスしか出来ないですねぇ こういう作りだと拡張性が無いというか、id1の場合が増えるたびに 配列の中身も追加しなきゃならないので 向いてないのかもしれないです 参考になればよいのですが…

noname#193034
質問者

お礼

お返事ありがとうございます。 参考にさせていただきました。 こちらの説明不足でお手数御かけして申し訳ございませんでした。

  • koke29
  • ベストアンサー率58% (114/196)
回答No.1

ifで分岐さればいいんじゃないですか? if($_REQUEST[id] == "1"){ $table = 名称と価格のテーブルっつうか<tr><td>の組み合わせ } if($_REQUEST[id] == "2"){ $table = 詳細のテーブルっつうか<tr><td>の組み合わせ } print $table; とか。どうにでもなりそうな予感ですが。

noname#193034
質問者

補足

idが1 54 50 12 35 だとすると 名称と価格のテーブルっつうか<tr><td>の組み合わせ idが 2 21 25 15 63 だと 詳細のテーブルっつうか<tr><td>の組み合わせ この場合もifですか?

関連するQ&A