投稿者 |
スレッド |
vyu |
投稿日時: 2011/6/28 17:44
対応状況: −−−
|
半人前 登録日: 2011/6/24 居住地: 投稿: 15 |
Re: 2.11.1系で、新着商品を表示させたい。 以下のようなエラーが表示されました。 引用: SQL: SELECT mtb_status_image FROM name WHERE id=1
MDB2 Error: no such table
_doQuery: [Error message: Could not execute statement] [Last executed query: PREPARE mdb2_statement_mysql_227d2fa5cdffecbd36c59c8563f9ba27268debffc2 FROM 'SELECT mtb_status_image FROM name WHERE id=1 '] [Native code: 1146] [Native message: Table '※ドメイン※.name' doesn't exist]
/※root※/shop/index.php 33:LC_Page_Index_Ex->process /※root※/data/class_extends/page_extends/LC_Page_Index_Ex.php 56:LC_Page_Index->process /※root※/data/class/pages/LC_Page_Index.php 56:LC_Page->sendResponse /※root※/data/class/pages/LC_Page.php 133:SC_Display->prepare /※root※/data/class/SC_Display.php 74:SC_View->getResponse /※root※/data/class/SC_View.php 92:Smarty->fetch /※root※/data/module/Smarty/libs/Smarty.class.php 1263:include /※root※/data/Smarty/templates_c/default/%%F1^F15^F158E3F4%%site_frame.tpl.php 88:Smarty->_smarty_include /※root※/data/module/Smarty/libs/Smarty.class.php 1869:include /※root※/data/Smarty/templates_c/default/%%58^587^5876E692%%site_main.tpl.php 127:smarty_core_smarty_include_php /※root※/data/module/Smarty/libs/internals/core.smarty_include_php.php 40:Smarty->_include /※root※/data/module/Smarty/libs/Smarty.class.php 1923:include /※root※/shop/frontparts/bloc/product_flag.php 10:LC_Page_FrontParts_Bloc_ProductFlag_Ex->process /※root※/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag_Ex.php 27:LC_Page_FrontParts_Bloc_ProductFlag->process /※root※/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag.php 45:SC_Query->get /※root※/data/class/SC_Query.php 580:SC_Query->getOne /※root※/data/class/SC_Query.php 595:SC_Query->prepare /※root※/data/class/SC_Query.php 867:MDB2_Driver_mysql->prepare /※root※/data/module/MDB2/Driver/mysql.php 1123:MDB2_Driver_mysql->_doQuery /※root※/data/module/MDB2/Driver/mysql.php 798:MDB2_Driver_Common->raiseError /※root※/data/module/MDB2.php 1497:PEAR->raiseError /※root※/data/module/PEAR.php 557:MDB2_Error->MDB2_Error /※root※/data/module/MDB2.php 1009:PEAR_Error->PEAR_Error
※ サーバールートは※root※に置き換えています
|
|
|
fukap |
投稿日時: 2011/6/28 18:02
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.1系で、新着商品を表示させたい。 data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag.php の
45行目付近のgetメソッドに誤りがあるようです。該当箇所を見直してみてください。
|
|
|
Leon |
投稿日時: 2011/6/30 10:38
対応状況: −−−
|
半人前 登録日: 2011/4/13 居住地: 投稿: 16 |
Re: 2.11.1系で、新着商品を表示させたい。 全く分かりません。 ド素人なので、分かりやすいプログラムとか教えてください。 エラー表示はなくなりましたが、新着商品がなかなか表示できません。 あちこっちいじってみましたが、なかなか出ません。
|
|
|
Leon |
投稿日時: 2011/6/30 11:10
対応状況: −−−
|
半人前 登録日: 2011/4/13 居住地: 投稿: 16 |
Re: 2.11.1系で、新着商品を表示させたい。 他のサイトを見て、引用しましたが2.4系なので、試しに2.4系を使ってみたところ、うまく作動しましたが、同じやり方で、2.11系に移植してみたところ、エラーが発生しました。 全部の画面が、真っ白になりました。 同じ症状を持った方いますか? http://www.naga-blog.com/archives/2009/03/101727.php
|
|
|
vyu |
投稿日時: 2011/6/30 13:39
対応状況: −−−
|
半人前 登録日: 2011/6/24 居住地: 投稿: 15 |
Re: 2.11.1系で、新着商品を表示させたい。 引用: fukapさんは書きました: data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_ProductFlag.php の
45行目付近のgetメソッドに誤りがあるようです。該当箇所を見直してみてください。
45行目付近は、 $this->statusName =$objQuery->get("mtb_status_image", "name", "id={$productFlag}"); でした。ここから手詰まりです・・・ ここから先は自分の知識では難しいかもしれません。 同時進行で、別のアプローチで方法を探しています。
|
|
|
fukap |
投稿日時: 2011/6/30 16:19
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.1系で、新着商品を表示させたい。 参考にされているコードは、Ver2.0.1 時代のものみたいですから、2.11に合わせて書き換えないと動かないですね。 前後のコードがわからないので、当てずっぽうですが、こんなコードはどうですか。 $this->statusName = $objQuery->get("mtb_status_image", "name", "id", array($productFlag));
|
|
|
vyu |
投稿日時: 2011/6/30 16:55
対応状況: −−−
|
半人前 登録日: 2011/6/24 居住地: 投稿: 15 |
Re: 2.11.1系で、新着商品を表示させたい。 引用: 参考にされているコードは、Ver2.0.1 時代のものみたいですから、2.11に合わせて書き換えないと動かないですね。 全くそのとおりです。データの取り出し方がも、取り出してくるデータの構造も違っているのでしょうか。 $this->statusName = $objQuery->get("mtb_status_image", "name", "id", array($productFlag));
こちらのコードに差し替えてみましたが、 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=8262&forum=10&post_id=40205#forumpost40205と同じエラーがでました。ご報告のみ・・・
|
|
|
fukap |
投稿日時: 2011/6/30 17:26
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.1系で、新着商品を表示させたい。 あ、プレスホルダーつけるの、忘れてました。 これだとどうかな? $this->statusName = $objQuery->get("mtb_status_image", "name", "id = ? ", array($productFlag));
ちなみにこの関門を越えても、少し下にある $objQuery->select でもエラーが出そうなので、参考コードを書いてみました。 明らかにエラーが出そうなところは直したつもりですが、動く保証は一切ありませんので、参考程度に。 $col = "dtb_products.product_id, dtb_products.name, dtb_products.main_image, MIN(dtb_products_class.price02) AS price02_min, MAX(dtb_products_class.price02) AS price02_max";
$from = "dtb_products INNER JOIN dtb_products_class ON dtb_products.product_id = dtb_products_class.product_id";
$where = "dtb_products.product_flag ILIKE ?";
$arrval[] = "%$ret%";
$groupby = "product_id";
$this->groupby=$objQuery->setGroupBy($groupby);
//商品の表示はupdate_dateが新しい順
$order = "dtb_products.update_date DESC";
$this->order=$objQuery->setOrder($order);
$arrFlagList = $objQuery->select($col, $from, $where, $arrval);
|
|
|
vyu |
投稿日時: 2011/6/30 19:50
対応状況: −−−
|
半人前 登録日: 2011/6/24 居住地: 投稿: 15 |
Re: 2.11.1系で、新着商品を表示させたい。 コードを差し替えましたが、変わらず・・ほぼ同様のエラーメッセージです。 ちなみに現状の LC_Page_FrontParts_Bloc_ProductFlag.php は、以下のようになっています。
<?php
// {{{ requires
require_once(CLASS_REALDIR . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php");
/**
* productStatus のページクラス.
*
* @package Page
*/
class LC_Page_FrontParts_Bloc_ProductFlag extends LC_Page_FrontParts_Bloc {
// }}}
// {{{ functions
/**
* Page を初期化する.
*
* @return void
*/
function init() {
parent::init();
$bloc_file = 'productFlag.tpl';
$this->setTplMainpage($bloc_file);
}
/**
* Page のプロセス.
*
* @return void
*/
function process() {
if (defined("MOBILE_SITE") && MOBILE_SITE) {
$objView = new SC_MobileView();
} else {
$objView = new SC_SiteView();
}
$objSiteInfo = $objView->objSiteInfo;
// 基本情報を渡す
$objSiteInfo = SC_Helper_DB_Ex::sfGetBasisData();
$this->arrInfo = $objSiteInfo->data;
$objQuery = new SC_Query();
//検索したい商品のステータスを設定
//NEW→1, 残りわずか→2, ポイント2倍→3, オススメ→4, 限定品→5
$productFlag = 1;
//検索する商品のステータスをランダムに決定し、表示させたい場合は以下のコメントを外してください。
//$id_count = $objQuery->count(mtb_status);
//$productFlag = rand(1,$id_count);
$this->statusName = $objQuery->get("mtb_status_image", "name", "id = ? ", array($productFlag));
//表示する商品の件数
$listCount = 5;
$ret = "";
$arrTmp[$productFlag] = "1";
for($i = 1; $i <= $productFlag; $i++) {
if($arrTmp[$i] == "1") {
$ret.= "1";
} else {
$ret.= "_";
}
}
if($ret != "") {
$ret.= "%";
}
$col = "dtb_products.product_id, dtb_products.name, dtb_products.main_image, MIN(dtb_products_class.price02) AS price02_min, MAX(dtb_products_class.price02) AS price02_max";
$from = "dtb_products INNER JOIN dtb_products_class ON dtb_products.product_id = dtb_products_class.product_id";
$where = "dtb_products.product_flag ILIKE ?";
$arrval[] = "%$ret%";
$groupby = "product_id";
$this->groupby=$objQuery->setGroupBy($groupby);
//商品の表示はupdate_dateが新しい順
$order = "dtb_products.update_date DESC";
$this->order=$objQuery->setOrder($order);
$arrFlagList = $objQuery->select($col, $from, $where, $arrval);
//商品の表示をランダムに抽出する場合は以下のコメントを外してください。
//srand((double)microtime()*1000000);//乱数生成器を初期化
//shuffle($arrFlagList);
$this->arrFlagProducts = array_slice($arrFlagList, 0, $listCount);
$objSubView = new SC_SiteView();
$objSubView->assignobj($this);
$objSubView->display($this->tpl_mainpage);
}
/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
}
?>
引き続き模索中です。
|
|
|
fukap |
投稿日時: 2011/6/30 20:23
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.1系で、新着商品を表示させたい。 あ、2.11になって、$col と $table の位置が逆になったんだった。 2.4.4 の SC_Query::get を見てました。。 というわけで、これでどうかな? $this->statusName = $objQuery->get("name", "mtb_status_image", "id = ? ", array($productFlag));
|
|
|