|
 1.2 Кб |
|
| Доброго времени суток! При написании скрипта вывода товарных позиций вылезает ошибка :
Unsupported operand types in Z:\home\localhost\www\a-s\index.php on line 52.
часть кода во вложении.
там же вставлен код обработчика ошибок, который пишет в лог файл.
в логах ошибка вот так описана:
2009-06-05 21:20:58 8 Undefined offset: 1 Z:\home\localhost\www\a-s\index.php 52
Подскажите, с чем это связано и как исправить???
Заранее благодарен! | |
|
|
|
|
|
|
|
для: ecipuser
(05.06.2009 в 21:25)
| | Издеваемся?
Ссылки в диагностиках указывают на строку 52. | |
|
|
|
|
|
|
|
для: Trianon
(05.06.2009 в 21:30)
| | Так в том то и дело, не могу понять в чем именно ошибка!!!!!
$total_value += $cartinfo[$id]['price'] * $count;
(вот эта строка) | |
|
|
|
|
|
|
|
для: ecipuser
(05.06.2009 в 21:32)
| | Ошибка в том, что в массиве $cartinfo нет элемента с индексом $id
Очевидно, в нем вообще ни одного элемента нет.
<?
ini_set('display_errors',1);
error_reporting(E_ALL);
set_error_handler('user_log');
function user_log ($errno, $errmsg, $file, $line) {
$dt = date("Y-m-d H:i:s");
error_log("$dt $errno $errmsg $file $line\n", 3, "error.log");
}
$pagename = "Интернет-Каталог с возможностью заказа";
$link=mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("asp");
$r=mysql_query("select * from tovar");
if(!$r){
exit (mysql_error());
}
list($id,$articul,$name,$price,$imgsrc)=mysql_fetch_row($r);
$cartinfo['id']=$id;
$cartinfo['articul']=$articul;
$cartinfo['name']=$name;
$cartinfo['price']=$price;
$cartinfo['imgsrc']=$imgsrc;
$cartinfo = array(); /////////////////////////////////////////////////////
$_SESSION['cartinfo'][$id]=$cartinfo;
// print_r($_SESSION["cart"]);
if (isset($_GET['add'])) {
@$_SESSION['cartinfo'][$_GET['add']]++;
}
// подсчитываем общее количество и общую стоимость, а затем добавляем в корзину:
$total_num = 0;
$total_value = 0;
if (@is_array($_SESSION['cartinfo'])) {
foreach ($_SESSION['cartinfo'] as $id => $count) {
$total_value += $cartinfo[$id]['price'] * $count;
$total_num += $count;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(05.06.2009 в 21:51)
| | Что значит нет?
а в строках:
list($id,$articul,$name,$price,$imgsrc)=mysql_fetch_row($r);
$cartinfo['id']=$id;
$cartinfo['articul']=$articul;
$cartinfo['name']=$name;
$cartinfo['price']=$price;
$cartinfo['imgsrc']=$imgsrc;
$cartinfo = array();
разве $id - не описывается?
тагда как это исправить??? | |
|
|
|
|
|
|
|
для: ecipuser
(05.06.2009 в 22:41)
| | $cartinfo['id']; и $cartinfo[$id]; — это разные вещи, всё конечно зависит от значения $id… | |
|
|
|
|
|
|
|
для: nikita2206
(05.06.2009 в 23:23)
| | Это понятно!!! Но вопрос где ошибка и как зпаисать?? Ведь сумму все равео нужно подсчитать!!! | |
|
|
|
|
|
|
|
для: ecipuser
(06.06.2009 в 06:57)
| | Странная у вас корзина. | |
|
|
|
|
|
|
|
для: ecipuser
(06.06.2009 в 06:57)
| |
if (@is_array($_SESSION['cartinfo'])) {
foreach ($_SESSION['cartinfo'] as $id => $count) {
$total_value += $cartinfo[$id]['price'] * $count;
$total_num += $count;
}
}
|
у вас получается $count - это массив
$count['price'] - здесь ваша цена
такого элемента у вас вообще нету.
if (isset($_GET['add']))
@$_SESSION['cartinfo'][$_GET['add']]++;
|
здесь вы пытаетесь увеличить на еденицу массив?
вероятно, вам в массив $_SESSION['cartinfo'][$id] надо добавить ключ, в котором будет указываться кол-во выбранного товара. | |
|
|
|
|
|
|
|
для: ride
(06.06.2009 в 08:33)
| | спвсибо. буду разбираться | |
|
|
|