0

#__kiduka_accounts テーブルから gstexempt 値を取得し、0 または 1 に設定されているかどうかを確認し、それに応じて税額を適用できるように、このコード スニペットを変更する方法を見つけようとしています。

$db = JFactory::getDBO();
    $query = 'SELECT a.id, a.gstexempt FROM #__users as u
        LEFT JOIN #__kiduka_accounts as a ON u.id = a.user_id 
        WHERE u.gid < 23';
    if(JRequest::getInt('membertype', 0) > 0)
    {
        $query .= ' AND a.membertype = '.JRequest::getInt('membertype', 0);
    }
    $db->setQuery($query);
    $users = $db->loadResultArray();
    $query = 'SELECT * FROM #__kiduka_products WHERE id = '.JRequest::getVar('purchaseproduct');
    $db->setQuery($query);
    $product   = $db->loadObject();
    $params    = JComponentHelper::getParams('com_kiduka');
    $tax       = $params->get('tax');
    $gstexempt = $users->gstexempt;

    if ($gstexempt != 1) {

        $subtotal   = $product->price;
        $taxtotal   = $subtotal * $tax / 100;
        $finaltotal = $taxtotal + $subtotal;

    } else {

        $subtotal   = $product->price;
        $taxtotal   = "0.00";
        $finaltotal = $subtotal;

    }

これを機能させるために何を変更する必要があるかについて、誰かが洞察を共有できますか?

ありがとうございました。

マイク

4

1 に答える 1

0

実行中の SQL クエリを再確認し、サーバー上で直接実行して、期待どおりの結果が得られていることを確認してください。問題を引き起こしているように見える行の 1 つは結合です。

ハードコーディングされたユーザー行 (g.id = 23) で結合を行っている場合、このレコードの値が 1 でないことは確かですか?

設定した直後にユーザーに対してprint_rを実行して、データベースの結果構造を確認してください(および/またはここに投稿してください)

于 2013-01-15T00:11:06.077 に答える