2017-04-10 46 views
0

私のコードに問題があります。クラスのオブジェクトがintで変換できませんでした

Notice: Object of class stdClass could not be converted to int in C:\wamp\www\Site\include\fonction_panier.php on line 136

マイライン136:

私はこのエラーを理解していない

return $total + $total*$_SESSION['panier']['tva']/100;

この行は、この関数である:

function montantlGlobalTVA() { 
    $total = 0; 

    for ($i = 0; $i<count($_SESSION['panier']['libelleProduit']); $i++) { 
     $total += $_SESSION['panier']['qteProduit'][$i]*$_SESSION['panier']['prixProduit'][$i]; 
    } 

    return $total + $total*$_SESSION['panier']['tva']/100; 
} 

TVAは私のデータベースにあります。

$select = $db->query("SELECT tva FROM produits"); 
     $tva = $select->fetch(PDO::FETCH_OBJ); 
     $_SESSION['panier']['tva']= $tva; 

私が行うとvar_dump()

object(stdClass)[1] public 'tva' => string '18' (length=2)

+0

'$ _SESSION ['panier'] ['tva']'は整数ではないということは、あなたはそれで数学を行うことができないということです。それをエコーし​​、それが何であるかを見てください。 –

+0

''(int) ''を使ってキャストすることができます。 $ _SESSION ['panier'] ['qiProduit'] [$ i] *(int)$ _SESSION ['panier'] ['prixProduit'] [$ i]; '' – alistaircol

+0

可能です[参考 - PHPでこのエラーはどういう意味ですか?](http://stackoverflow.com/questions/12769982/reference-what-this-error-mean-in-php) – miken32

答えて

1

私はあなたが列tvaの値を取得しようとしている賭け:

<td><?php echo var_dump($_SESSION['panier']['tva'])." %";?></td> 

私はこの結果を得ます。戦略PDO::FETCH_OBJでフェッチする場合、各行がオブジェクトとして返されます。あなたはfetch()によって返されるオブジェクト内のtvaプロパティセット呼び出すことで値を取得することができます

:代わりに、セッション内の行(オブジェクト)を返すの

$row = $select->fetch(PDO::FETCH_OBJ); 
$_SESSION['panier']['tva']= $row->tva; 

を、データベースから取得した実際の値があります今セッションに保存されています。

1
$select = $db->query("SELECT tva FROM produits"); 
     $tva = $select->fetch(PDO::FETCH_OBJ); 
     $_SESSION['panier']['tva']= $tva; 

ストレートフォームphp.net:

PDO :: FETCH_OBJは: http://php.net/manual/en/pdostatement.fetch.php

は、たぶん、あなたがしたいセットあなたの結果で返されるカラム名に対応してプロパティ名を持つ匿名オブジェクトを返します。 PDO :: FETCH_ASSOCを使用しますか?

+0

私はPDO :: FETCH_ASSOC!私は他のエラーがあります '致命的なエラー:C:\ wamp \ www \ Site \ include \ fonction_panier.phpのライン136でサポートされていないオペランドタイプ' 私はディビジョンを削除しようとしましたが、何も起こりません。 ? – Kievrancois

+0

、どのコードが136行目ですか? –

+0

これは: 'return $ total + $ total * $ _ SESSION ['panier'] ['tva']/100;' – Kievrancois

関連する問題