2017-04-10 48 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()

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

我得到這樣的結果:

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

+0

這是說$ _SESSION ['panier'] ['tva']'不是一個整數,這意味着你不能用它做數學。迴應它,看看它是什麼。 –

+0

你可以使用''(int)''例如''$ total + =(int)$ _SESSION ['panier'] ['qteProduit'] [$ i] *(int)$ _SESSION ['panier'] ['prixProduit'] [$ i];'' – alistaircol

+0

可能[參考 - 這是什麼錯誤在PHP中意味着什麼?](http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) – miken32

回答

1

我敢打賭,你正在試圖獲得列tva的價值。在使用策略PDO::FETCH_OBJ進行提取時,每行都將作爲對象返回。

您可以通過調用該對象的tva屬性集獲得的價值被fetch()返回:

$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 \網站\ \包括在fonction_panier.php線136' 我嘗試刪除happen.Do你有一個想法的劃分,但沒有? – Kievrancois

+0

和哪些代碼在第136行? –

+0

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

相關問題