Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Какая ошибка?
Форумы портала PHP.SU » PHP » Программирование на PHP » Какая ошибка?

Страниц (1): [1]
 

1. Andrey - 15 Августа, 2007 - 22:51:37 - перейти к сообщению
Кусок кода:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function calculate_price($cart)
  4.   {
  5.    $price=0;
  6.    if(is_array($cart))
  7.         {
  8.         foreach($cart as $isbn => $qty)
  9.         {
  10.   $sql="SELECT product_price FROM product WHERE product_id='$isbn'";
  11.     $res=$this->conn->query($sql);
  12.         if($res)
  13.         {
  14.         $item=$res->fetch_object();
  15.         $item_price=$item->price;
  16.         $price +=$item_price*$$qty;
  17.                                
  18.         }
  19.         }
  20.                
  21.         }
  22.         return $price;
  23.              }
  24.  


Когда программа выполняет эту часть кода, браузер выдаёт ошибку:

Notice: Undefined property: stdClass::$price in C:Program FilesApache GroupApache2htdocsmyshop0class.e shop.php on line 424


424 строка это:


В чём проблема?
2. valenok - 15 Августа, 2007 - 23:25:46 - перейти к сообщению
phpfaq.ru/debug
Вы порверяли что находится в item во время исполнения вашей строки?
3. Andrey - 15 Августа, 2007 - 23:42:50 - перейти к сообщению
valenok пишет:
phpfaq.ru/debug
Вы порверяли что находится в item во время исполнения вашей строки?


Для проверки этого добавил в код строку


Браузер выдает:

Catchable fatal error: Object of class stdClass could not be converted to string in C:Program FilesApache GroupApache2htdocsmyshop0class.e shop.php on line 424
4. valenok - 16 Августа, 2007 - 13:17:15 - перейти к сообщению
var_dump($item)
5. Andrey - 17 Августа, 2007 - 21:57:55 - перейти к сообщению
valenok пишет:
var_dump($item)


Браузер выдаёт:


object(stdClass)#4 (1) { ["product_price"]=> string(6) "496.15" }

по мере добавления элементов в корзину

object(stdClass)#4 (1) { ["product_price"]=> string(6) "496.15" }
object(stdClass)#3 (1) { ["product_price"]=> string(6) "376.83" }
object(stdClass)#5 (1) { ["product_price"]=> string(5) "82.00" }
6. valenok - 17 Августа, 2007 - 23:32:51 - перейти к сообщению
попробуйте тогда
PHP:
скопировать код в буфер обмена
  1. $item_price=intval($item->product_price);
  2. $price +=$item_price*$qty;

 

Powered by ExBB FM 1.0 RC1