Автор оригинала: dimagolov
FRIE, у тебя одна попытка ответить правильно на мой вопрос. Иначе и RO заработать можешь.
Так .. в этом коде наскоко я понялFRIE, переведи что значит "Parse error: syntax error, unexpected T_FOREACH"
<?php ini_set('display_errors', 'on');
error_reporting(E_ALL);
session_start();
$id=$_POST['id'];
$price=$_POST['price'];
$arr=array("id" =>$id, "price" => $price);
$result=array_merge($_SESSION['cart'],$arr)
foreach($result as $k => $v) {
print "\$result[$k] => $v.\n";
}
?>
вот по другому сделалАвтор оригинала: dimagolov
просто не поставил ";" в 7 строке. поэтому интерпретатор и не ожидал foreach (unexpected T_FOREACH) после этого.
про $_SESSION['cart'] тоже справедливо.
<?php ini_set('display_errors', 'on');
error_reporting(E_ALL);
session_start();
$id=$_POST['id'];
$price=$_POST['price'];
$arr=array("id" =>$id, "price" => $price);
if(!isset($_SESSION['cart'])){
$_SESSION['cart']=$arr;
}
else{
$arr2=$_SESSION['cart'];
}
if(isset($arr2)){
$result=array_merge($arr2,$arr);
$_SESSION['cart']=$result;
}
else{
$result=$arr;
}
foreach($result as $k => $v) {
print "\$result[$k] => $v.\n";
}
?>
<?php ini_set('display_errors', 'on');
error_reporting(E_ALL);
session_start();
if(isset($_POST['id'])){$id=$_POST['id'];}
if(isset($_POST['price'])){$price=$_POST['price'];}
$arr=array("id" =>$id, "price" => $price);
if (!isset($_SESSION['cart'])) {$_SESSION['cart']= array ();}
$_SESSION['cart']= array_merge($_SESSION['cart'],$arr);
$result=$_SESSION['cart'];
foreach($result as $k => $v) {
print "\$result[$k] => $v.\n";
}
?>
количество единиц товара пока еще нигде не храню , мне бы сначала разобраться с тем чтобы старые значения не перезаписывалисьАвтор оригинала: sky_fox
потому, что ты документацию не читаешь
http://php.net/manual/en/function.array-merge.php
If the input arrays have the same string keys, then the later value for that key will overwrite the previous one
Кусок кода очень прост, тем не менее не понятно:
1. где ты хранишь количество единиц товара
2. зачем ты в сессии гоняешь цену?
3. если хочешь добавлять товары в массив cart = добавляй или как $_SESSION['cart'][$id] = $price или как $_SESSION['cart'][] = $arr
это как бы редкостный маразм. а если хакер вася пришлет цену не 500 и не 1000 а 300, ты что делать будешь?тоесть товары разных размеров поэтому у одного товара несколько цен, и по базе id один и тот же а в корзине эти товары как бы разные
if(isset($_POST['id'])){$id=$_POST['id'];}
if(!isset($_POST['id']) || !isset($_POST['price'])) { // тут можно валидацибю значений добавить
processError();
die();
}
// работаем с $_POST['id'] и с $_POST['price'], они 100% определены
если ты не понимаешь базового синтаксиса (массивы) то ничего хорошего ты написать не можешь в принципе.Пожалуста выскажете свое мнение