0

ここで脳がフリーズします。これは、7 つの文字列変数の var_dump() です...

array(1) { [0]=> object(stdClass)#635 (1) { ["base_price"]=> string(3) "449" } }
array(1) { [0]=> object(stdClass)#445 (1) { ["option_delta"]=> string(2) "15" } }
array(1) { [0]=> object(stdClass)#639 (1) { ["option_delta"]=> string(2) "29" } }
array(1) { [0]=> object(stdClass)#448 (1) { ["option_delta"]=> string(2) "19" } }
array(1) { [0]=> object(stdClass)#447 (1) { ["option_delta"]=> string(2) "39" } }
array(1) { [0]=> object(stdClass)#446 (1) { ["option_delta"]=> string(2) "34" } }
array(1) { [0]=> object(stdClass)#449 (1) { ["option_delta"]=> string(2) "34" } }

これらの変数の合計が必要で、次のようにアプローチしました。

$totalprice = $baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice;

この:

$totalprice = ($baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice);

この:

$totalprice = (int)$baseprice + (int)$procprice + (int)$memprice + (int)$graprice + (int)$hdprice + (int)$optprice + (int)$nicprice;

ドップスラップで額が痛くなることはわかっていますが、痛みから解放される準備はできています。

詳細を追加するには、このスクリプト (Joomla のフォーム/アプリ ビルダーである Fabrik にあります) を開始します。

    <?php
$typ = '{rw_inquiries___product_type_id_raw}';
$pro = '{rw_inquiries___selected_processor_raw}';
$mem = '{rw_inquiries___selected_memory_raw}';
$gra = '{rw_inquiries___selected_graphics_raw}';
$hd = '{rw_inquiries___selected_hd_raw}';
$opt = '{rw_inquiries___selected_optical_raw}';
$nic = '{rw_inquiries___selected_nic_raw}';
$db =&JFactory::getDBO();
$db->setQuery("SELECT `base_price` FROM `rw_product_types` where `id` = $typ");
$baseprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $pro");
$procprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $mem");
$memprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $gra");
$graprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $hd");
$hdprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $opt");
$optprice = $db->loadObjectList();
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $nic");
$nicprice = $db->loadObjectList();
$totalprice = $baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice;
?>

7 つのそれぞれは、フォーム フィールドとしてのドロップダウンからの選択です...

また、コンピュータ、プロセッサ、メモリ、グラフィックス、ハード ドライブ、オプティカル、および NIC のスタイルを選択する「コンフィギュレータ」用のコンピュータ コンポーネントです。

「デルタ」オプションは、基本価格への「追加」にすぎません。

それが役立つことを願っています。

4

1 に答える 1

0

オブジェクト自体だけでなく、返されたオブジェクト内のデータにアクセスする必要があります。

$totalprice = ((int) $baseprice[0]->base_price + (int) $procprice[0]->option_delta);

これにより、要素の基本的な追加が得られるはずです。

これは、オブジェクトを見て推測されます。$baseprice を例にとります。

array(1) { [0]=> object(stdClass)#635 (1) { ["base_price"]=> string(3) "449" } }

最初の array(1) で示されているように、1 つのオブジェクトを含む配列であることがわかります。したがって、次のように言ってそのオブジェクトにアクセスします。

$baseprice[0]

次に、中括弧内の内容が表示され[0] => object(...)ます。これは、最初の項目がオブジェクトであることを意味します。そのオブジェクトの「base_price」要素を取得するには、-> を使用して正しい要素をポイントします。

$baseprice[0]->base_price

int としてキャストできる文字列を追加するには、次のようにします。

(int) $baseprice[0]->base_price

または間隔を使用します。

intval($baseprice[0]->base_price)

int として、コードで示したように + 文字を使用するだけで追加できるはずです。

于 2013-03-30T00:08:17.703 に答える