質問 > フロント機能 > シークレット商品ページをつくるには |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sudachi |
投稿日時: 2013/10/23 3:10
対応状況: −−−
|
新米 登録日: 2013/10/23 居住地: 投稿: 3 |
シークレット商品ページをつくるには はじめまして。
phpやプログラムに関して初心者です。 参考サイトを真似して、カスタマイズをしている程度のレベルなのですが、クライアントの要望でシークレット商品ページを作る依頼があり、以下の参考サイトを参考にしてみたのですが、エラーがでてしまいうまくいきません。 詳しい方、ご教授いただければ幸いです。。。 ▽参考サイト http://aerocompact.blog91.fc2.com/blog-entry-12.html ▽システム環境 EC-CUBEバージョン 2.4.4 PHPバージョン PHP 5.2.17 DBバージョン MySQL 5.0.51a-log ▽エラー内容 種別で「シークレット商品」を追加し、選択した商品の詳細ページをみると以下エラーがでて表示されません。 一覧ページはちゃんと表示されるのですが… ------------------------------------ システムエラーが発生しました。 大変お手数ですが、サイト管理者までご連絡ください。 SERVER_ADDR:000.00.0.00 REMOTE_ADDR:000.000.00.000 USER_AGENT:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0 SELECT category_id FROM dtb_category WHERE category_id = ? DB Error: syntax error SELECT category_id FROM dtb_category WHERE category_id = ? [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1] /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/products/detail.php 34:LC_Page_Products_Detail_Ex->process /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php 56:LC_Page_Products_Detail->process /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/class/pages/products/LC_Page_Products_Detail.php 230:SC_Query->get /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/class/SC_Query.php 402:SC_DbConn->getOne /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/class/SC_DbConn.php 104:DB_common->getOne /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/module/DB/common.php 1240:DB_common->query /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/module/DB/common.php 1167:DB_mysql->simpleQuery /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/module/DB/mysql.php 324:DB_mysql->mysqlRaiseError /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/module/DB/mysql.php 894:DB_common->raiseError /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/module/DB/common.php 1853:PEAR->raiseError /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/module/PEAR.php 557:DB_Error->DB_Error /export/sd00/www/jp/r/e/server/6/4/sd000000/ex.co.jp/shop/data/module/DB.php 893:PEAR_Error->PEAR_Error 要は、この方法に限らず、特定の商品(カテゴリ)を 検索ボックスや全商品一覧で表示させないように出来れば、それでもいいのですが… 調べた限り、私のレベルで実装できそうなものがなかったため、今回の方法でやってみたのです。 お詳しい方、宜しくお願いたします。>< |
namahage |
投稿日時: 2013/10/23 10:27
対応状況: −−−
|
長老 登録日: 2013/2/28 居住地: 大阪 投稿: 198 |
Re: シークレット商品ページをつくるには ども
LC_Page_Products_Detail.php 230:SC_Query->get というエラー内容から、 LC_Page_Products_Detail.phpの230行目で SC_Query->getとありますが、getOneしてるとこでエラー発生しているのだと思います。 SELECT category_id FROM dtb_category WHERE category_id = ? というSQLは別にわるくないが、?に対してカテゴリーIDを指定出来てないのが問題ですね。 そもそも、category_id指定して、category_id取得ってのもどうかと思うのですが。。。
$arrValの記述がない又はミスしているのではないかと思われます。 一度、ご確認ください。 あっ!それか、カテゴリーIDの指定方法がわかんないんでしょうか? なら、URLの後ろに、?category_id=1(※既に?があれば、&category_id=1にする。)としてあげて、 プログラムのほうで、$_GET['category_id']とすれば、1が取得できますよ。 とりあえず現状のエラー回避方法です。 |
sudachi |
投稿日時: 2013/10/23 15:22
対応状況: −−−
|
新米 登録日: 2013/10/23 居住地: 投稿: 3 |
Re: シークレット商品ページをつくるには namahage様
ご返信有難うございます。 ----------------------------------- $objQuery =& SC_Query_Ex::getSingletonInstance(); $sql = 'SELECT category_id FROM dtb_category WHERE category_id = ?'; $arrVal = array($_GET['category_id']); //ここはご自身の環境の通りカテゴリーIDを指定してください。 $product = $objQuery->getOne($sql, $arrVal); ----------------------------------- この記述は、LC_Page_Products_Detail.phpの230行目 $this->category_id = $objQuery->get("dtb_category", "category_id", "category_id = ?", $arrCategory_id); をこのように変更する、という意味でしょうか?? また「環境の通りカテゴリーID」とは、シークレット商品カテゴリーのIDでしょうか? 現在、エラーが出ているのは詳細ページでして、 http://ex.co.jp/shop/products/detail.php?product_id=商品ID にエラーがでております。 カテゴリー一覧は表示されています。 LC_Page_Products_Detail.phpで今回編集したのは101行目の // 管理ページからの確認の場合は、非公開の商品も表示する。 if(isset($_GET['admin']) && $_GET['admin'] == 'on') { SC_Utils_Ex::sfIsSuccess(new SC_Session()); $status = true; $where = "del_flg = 0"; } else { $status = false; $where = "del_flg = 0 AND status = 1 OR status = 3"; } の赤の部分です。 デフォルトに戻すと、エラーはでませんが 「ご指定のページはございません。」とでて表示されません。。 大変分かりにくい説明で申し訳ないのですが 具体的にどのように修正すればよいのか、教えていただけますと幸いです。 |
sumida |
投稿日時: 2013/10/23 15:58
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: シークレット商品ページをつくるには 参考にされたサイトでは、
を追加していますよ。 |
sudachi |
投稿日時: 2013/10/24 13:33
対応状況: −−−
|
新米 登録日: 2013/10/23 居住地: 投稿: 3 |
Re: シークレット商品ページをつくるには sumida さま
失礼しました! 投稿ミスです。修正いたしました。 参考サイトのとうり、設定した上での質問になります。>< 宜しくお願致します。 |
namahage |
投稿日時: 2013/10/24 19:17
対応状況: −−−
|
長老 登録日: 2013/2/28 居住地: 大阪 投稿: 198 |
Re: シークレット商品ページをつくるには LC_Page_Products_Detail.phpの230行目の
$arrCategory_idに値が入っている箇所について調べてください。 こいつの値の入れ方がおかしいのではないか?ということを疑っています。
のように設定できていますか? array()の中にいれないとカテゴリIDをいれないとダメです。 まずはそれを確認してください。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |