массивы $_SESSION почему по разному работают?

Dima77

Guest
массивы $_SESSION почему по разному работают?

php-4.3.7

значит есть массив $_SESSION['kolvo']

при заполнении пишу $_SESSION['kolvo['.index++.']']
при считывании так же $_SESSION['kolvo['.index++.']']

зато после такой операции $_SESSION['kolvo']=$_POST['$kolvo'];
при считывании надо писать $_SESSION['kolvo'][$index++]

получается с _SESSION в разных случаях надо по разному работать ? в чем подвох?
 

Demiurg

Guest
> $_SESSION['kolvo['.index++.']']
это что по твоему должно значить ?
 

Сергей123

Новичок
$_SESSION['kolvo[4353]'] - это обращение к элементу массива $_SESSION с индексом kolvo[4353].
$_SESSION['kolvo'][4353] - это обращение к элементу массива $_SESSION['kolvo'] с индексом 4353.
 

Dima77

Guest
как же правильно сделать присовение, чтобы было
$_SESSION['kolvo']=$_POST['$kolvo']; и массив $_POST['$kolvo']
записался в $_SESSION['kolvo['.index++.']'] ?
неужели по каждому элементу через цикл?
 

Сергей123

Новичок
Dima77
ты уверен, что тебе нужно вот такое $_SESSION['kolvo[32423]'] уродство?

-~{}~ 11.11.04 11:02:

И что за запись $_POST['$kolvo']? Апострофы, доллар...
 

Dima77

Guest
Бресь Сергей
такой массив получается $_POST['$kolvo']
после заполнения формы вида...
print '<td><select size="2" name="$kolvo[]" multiple><option selected value="0">0</option>';

$_SESSION['kolvo[32423]'] такое уродство может и не нужно...
но я не знал как работать с массивом правильно и в какой то документации нашел такой пример...
в общем спасибо попробую без уродства...)))
 

Сергей123

Новичок
Искать лучше не в какой-то, а в официальной документации.
Кроме того, мне кажется, стоит убрать $ отсюда ['$kolvo'] и отсюда name="$kolvo[]", если конечно показанный print - не в цикле по $kolvo (тогда надо заставить его работать).
 

Dima77

Guest
Profic
рано радоваться...((( _POST трогать ненадо и так работает..

было в скрипте так
$_SESSION['isbn['.$_SESSION['chzak']++.']']=$row["isbn"];

вызывал в следующем
for ($chzak=0; $chzak<$_SESSION['chzak']; $chzak++)
echo $_SESSION['isbn['.$chzak']'] ;
все работало...

переделал на так и перестало работать
$_SESSION['isbn'][$_SESSION['chzak']++]=$row["isbn"];

пишет
Warning: Cannot use a scalar value as an array in f:\home\localhost\www\magazin\tit3.php on line 35 ужас...(((
 

Сергей123

Новичок
Да, радоваться нечему...
Dima77, я, пожалуй, сдамся. Извини...
Могу посоветовать только, независимо от register_globals, всё-таки не использовать и $chzak, и $_SESSION['chzak'].
Ну и, наверное, русскую документацию по массивам http://www.php.net/manual/ru/language.types.array.php .
 

Dima77

Guest
кажись разобрался... до чего массивы в пхп страшные(((
$_SESSION['isbn'][$_SESSION['chzak']++]=$row["isbn"]; добавил $ перед isbn
$_SESSION['$isbn'][$_SESSION['chzak']++]=$row["isbn"];
 

SiMM

Новичок
Ну конечно же, это массивы в PHP страшные, а Dima77 тут не при чём.
 
Сверху