bm_products_filter
index.php ファイルから変数を表示できないクラスがあるという問題があります。
index.php と bm_products_filters.php の 2 つのファイルがあります。
bm_products_filters.php でエコーしたい index.php にクエリがあります。
(ここにはいくつかのデータベース関数があります(index.phpで変数を正しくエコーできるため、それらは機能しています)
$product_count .= "SELECT COUNT(p.products_id) as total
from
" . TABLE_PRODUCTS . " p
left join " . TABLE_SPECIALS . " s
on p.products_id = s.products_id
left join " . TABLE_MANUFACTURERS . " m
on p.manufacturers_id = m.manufacturers_id
join " . TABLE_PRODUCTS_DESCRIPTION . " pd
on p.products_id = pd.products_id
join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
on p.products_id = p2c.products_id
where
p.products_status = '1'
and pd.language_id = '" . (int) $languages_id . "'
and p2c.categories_id = '" . (int)$current_category_id . "'";
$product_count_query = tep_db_query($product_count);
$product_count_tally = tep_db_fetch_array($product_count_query);
global $test_me;
$test_me = $product_count_tally['total'];
?>
エコーしようとしている変数は$test_me
.
このクラスbm_products_filter
は、次のように index.php から (間接的に推測すると) 呼び出されます。
<?php echo $oscTemplate->getBlocks('boxes_column_left'); ?>
このgetBlocks
関数は、フォルダー「boxes」内のすべての PHP ファイルを調べて、左側の列 (表示されている bm_products_filters.php) 用のファイルを見つけます。
ここで私は確かに完全に間違っていますが、その方法がわかりません。
bm_products_filters.php で、私はやろうとしています:
echo $test_me;
しかし、私は何も得ていません。宣言すればうまくいくかもしれないと思ったのですglobal
が、うまくいきませんでした。どういうわけかそれを呼び出す必要があると思います->
範囲はよくわかりませんが。
うまくいけば、ここで十分な情報を提供できましたか?さらに必要な場合はお知らせください。
アップデート:
これは私がやろうとしたことですが、うまくいきません:
//index.php
$product_count .= "SELECT COUNT(p.products_id) as total
from
" . TABLE_PRODUCTS . " p
left join " . TABLE_SPECIALS . " s
on p.products_id = s.products_id
left join " . TABLE_MANUFACTURERS . " m
on p.manufacturers_id = m.manufacturers_id
join " . TABLE_PRODUCTS_DESCRIPTION . " pd
on p.products_id = pd.products_id
join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
on p.products_id = p2c.products_id
where
p.products_status = '1'
and pd.language_id = '" . (int) $languages_id . "'
and p2c.categories_id = '" . (int)$current_category_id . "'";
$product_count_query = tep_db_query($product_count);
$product_count_tally = tep_db_fetch_array($product_count_query);
$test_me = $product_count_tally['total'];
function product_filter_count() {
global $test_me;
return $test_me;
}
//bm_products_filter.php
echo product_filter_count();
未定義関数の呼び出しエラーが発生しています。index.php で関数をエコーすると動作します。他の関数内から見えないのはなぜですか?