質問 > フロント機能 > 商品詳細URLを商品コードに置き換えたい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
atsu |
投稿日時: 2013/12/4 0:46
対応状況: −−−
|
一人前 登録日: 2008/5/29 居住地: 投稿: 83 |
商品詳細URLを商品コードに置き換えたい 商品詳細ページのURLを商品コードに置き換えて運用していたのですが、このたび2.13に変更を加えていて行き詰ってしまいました。
2.12まではうまくいっていたのですが、 LC_Page_Products_Detail.phpのpublic function action()で、 if ( $_GET[ "product_code" ] ) { $_REQUEST[ "product_id" ] = $this->lfGetProductId( $_GET[ "product_code" ] ); } を呼び出し、 public function lfGetProductId( $product_code ) { $q = new SC_Query(); // 大文字に変換 $product_code = strtoupper( $product_code ); $sql = <<< EOD select c.product_id from dtb_products_class c inner join dtb_products p on c.product_id = p.product_id and p.del_flg = 0 where c.product_code = ? group by c.product_id EOD; return $q->getone( $sql, array( $product_code ) ); } を設定していました。 調べたところ、2.13からはテーブルを直接参照できないようなのですが、どのように書き換えればいいのでしょうか? お分かりになる方がいらしたらよろしくお願いします。 バージョン2.13 |
atsu |
投稿日時: 2013/12/5 15:03
対応状況: −−−
|
一人前 登録日: 2008/5/29 居住地: 投稿: 83 |
Re: 商品詳細URLを商品コードに置き換えたい 自己レスです。
その後いろいろ試してみているのですが、 SC_Product.phpに下記関数をつくり、 public function lfGetProductId( $product_code ) { //インスタンス生成 $objQuery = new SC_Query(); $col = "product_id"; //カラム $table="dtb_products_class"; $where = "product_code = ?AND del_flg = 0 "; $res = $objQuery->select($col,$table, $from, $where); return $res; } LC_Page_Products_Detail.phpで、とりあえず呼び出して、取得したproduct_codeからproduct_idを取り出したいのですが、どうにもうまくいきません。 $objURLs = new SC_Product_Ex(); $this->ppcode = $objURLs->lfGetProductId( $_GET[ "product_code" ] ); if ( $_GET[ "product_code" ] ) { $abcd=lfGetProductId( $_GET[ "product_code" ] ); echo $abcd; } 知識不足で、分かる方がいらっしゃれば教えてください。 |
namahage |
投稿日時: 2013/12/5 15:23
対応状況: −−−
|
長老 登録日: 2013/2/28 居住地: 大阪 投稿: 198 |
Re: 商品詳細URLを商品コードに置き換えたい ども
具体的な情報がないとレスがつきにくいです。 うまくいきませんというのは、どのようにでしょうか? エラーが出るとか、エラーは出ないが取得出来ないとか。 そもそも$_GET[ "product_code" ]で商品コードは取得できていますでしょうか? |
DELIGHT |
投稿日時: 2013/12/5 15:33
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: 商品詳細URLを商品コードに置き換えたい
?とANDの間にスペースがないですね? これだと多分SQLエラーが発生すると思います。 あとSC_Queryのインスタンスは、
が慣例となっています。
|
atsu |
投稿日時: 2013/12/5 15:54
対応状況: −−−
|
一人前 登録日: 2008/5/29 居住地: 投稿: 83 |
Re: 商品詳細URLを商品コードに置き換えたい DELIGHTさん
教えていただいた2点修正してみました。 ありがとうございます。 namahageさん >そもそも$_GET[ "product_code" ]で商品コードは取得できていますでしょうか? $_GET[ "product_code" ]では、商品コードの取得はできています。 商品コードが取得できた場合に、商品コードを用いてproduct_idを返したいのですが、それができなくて行き詰っています。 |
bratech |
投稿日時: 2013/12/5 16:04
対応状況: −−−
|
長老 登録日: 2008/11/28 居住地: 福岡 投稿: 223 |
Re: 商品詳細URLを商品コードに置き換えたい 引用:
この部分ですが
上記の記述ですと返値が配列になりますので ご希望されている処理の流れに合わせるのであれば
こちらを使用された方が良いかもしれません。 ご参考まで。
|
namahage |
投稿日時: 2013/12/5 16:07
対応状況: −−−
|
長老 登録日: 2013/2/28 居住地: 大阪 投稿: 198 |
Re: 商品詳細URLを商品コードに置き換えたい product_codeを引数に渡していますが、selectに渡してませんね
$col = "product_id"; //カラム $table="dtb_products_class"; $where = "product_code = ? AND del_flg = 0 "; $arrWhereVal = array($product_code); $objQuery->select($col, $table, $where, $arrWhereVal); と変更してみてください。 |
atsu |
投稿日時: 2013/12/5 19:28
対応状況: −−−
|
一人前 登録日: 2008/5/29 居住地: 投稿: 83 |
Re: 商品詳細URLを商品コードに置き換えたい いろいろありがとうございます!
結局、 $col = "product_id"; //カラム $table="dtb_products_class"; $where = "product_code = ? AND del_flg = 0 "; $arrWhereVal = array($product_code); $res = $objQuery->get($col,$table, $from, $where,$arrWhereVal); echo $res; として、やってみたら、数値は取得できたものの、どのページでも「8」という番号が出力されてしまい、dtb_products_classの中身をみたら、先頭のproduct_idが8だったのでどうもそれが出力されているようなのです。 $from = "dtb_products_class INNER JOIN dtb_products ON dtb_products_class.product_id = dtb_products.product_id"; が必要なのかと思い、書いてみたのですがエラーがでてしまいます。 記述の間違いがあるのでしょうか?? |
namahage |
投稿日時: 2013/12/5 20:58
対応状況: −−−
|
長老 登録日: 2013/2/28 居住地: 大阪 投稿: 198 |
Re: 商品詳細URLを商品コードに置き換えたい
としても取得はできないはずです。 もう少し正確な情報ください。 $fromと$tableって意味一緒だと思うんですけど、勝手に増やすとエラー出ますよ。
でやってみてください。 これで$resの値が毎回同じ数字がでるのであれば、$product_codeの値がちゃんと変わっているか?を疑う、または同一の商品コードが複数の商品に設定されているから複数件取得されてしまう。 のどちらかの可能性があります。 この部分だけのソースではなくてもう少し前後の情報があれば回答しやすいです。 |
atsu |
投稿日時: 2013/12/5 21:56
対応状況: −−−
|
一人前 登録日: 2008/5/29 居住地: 投稿: 83 |
Re: 商品詳細URLを商品コードに置き換えたい namahageさんありがとうございます!!
教えていただいた通りで、$resにproduct_idを取得できる関数ができました。 namahageさんやみなさんのおかげで行き詰っていたところから前進できたようです。本当に助かりました。ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |