1

bm_products_filterindex.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 で関数をエコーすると動作します。他の関数内から見えないのはなぜですか?

4

3 に答える 3