バージョン選択

フォーラム

メニュー

オンライン状況

21 人のユーザが現在オンラインです。 (12 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 21
もっと...

サイト内検索

質問 > フロント機能 > シークレット商品ページをつくるには

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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取得ってのもどうかと思うのですが。。。



$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);


$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: シークレット商品ページをつくるには
参考にされたサイトでは、

 OR status = 3

を追加していますよ。
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行目の

$this->category_id = $objQuery->get("dtb_category", "category_id", "category_id = ?", $arrCategory_id);

$arrCategory_idに値が入っている箇所について調べてください。
こいつの値の入れ方がおかしいのではないか?ということを疑っています。

$arrCategory_id = array($_GET['category_id']); 

のように設定できていますか?
array()の中にいれないとカテゴリIDをいれないとダメです。

まずはそれを確認してください。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,514名です
総投稿数は110,112件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1656
8
red
1570
9
mcontact
1309
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.