Передача зависимого имени переменной

chelya

Новичок
Передача зависимого имени переменной

В общем вот такая проблема возникла... есть строка:
PHP:
	for ($j=1; $j<=mysql_num_rows($Res); $j++)
{
....
print ' <input type="text" name="ent_value1_'.$rr["id"].'" size="5">';
...
}
в общем имена вводимых переменных зависят от id параметра в БД (к примеру ent_value1_10, ent_value1_20 и т.д.)
задача...
как следующим скриптом значения этих переменных прочиать..
чтобы получилось:
PHP:
for (...)
{
print $ent_value1_(значение id) 
}
 

Фанат

oncle terrible
Команда форума
print ' <input type="text" name="ent_value1['.$rr["id"].']" size="5">';

foreach($_POST['ent_value1'] as $val) echo $val;
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
print_r($_POST) увидишь массив данных
далее foreach
?
 

Popoff

popoff.donetsk.ua
PHP:
$k=array_keys($_POST);
for($i=0;$i<count($k);$i++)
{
  if(strlen($k[$i])<=11||substr($k[$i],0,11)!='ent_value1_') continue;
  echo $_POST[$k[$i]];
}
 

chelya

Новичок
Popoff
в таком варианте он выдает для всех одно значение - последнее...
там вводится несколько различных значений, т.е. передается и ent_value1_1 и ent_value1_2 и т.д...
в данном варианте передается только последнее значение... т.е. все ent_value_... равны последннему введенному значению...
 

chelya

Новичок
ей и занимаюсь :)

-~{}~ 17.04.05 16:49:

Я чего-то не понимаю.... Какая-то просто непонятная мне ситуация...
строка:
PHP:
print_r($_POST['ent_value1']);
ответ: Array ( [1] => 1012 [2] => 11243 [3] => 12345 [4] => 1345 )

строки:
PHP:
foreach($_POST['ent_value1'] as $val[])
print $val[1];
ответ: 11243

Я чего-то не понимаю.... я его прошу дать мне значение массива с id 1, а он мне выдает с id 2... бррр...
 

chelya

Новичок
оттуда, что
foreach($_POST['ent_value1'] as $val)
$val он выдает как id, а не как значение... а в варианте as $val[] выдает значение переменной, только почему-то значение с id+1....
 

Фанат

oncle terrible
Команда форума
$val он выдает как id, а не как значение
извини я не понимаю смысла этой фразы.
в любом случае, что бы ты ни хотел получить, foreach($_POST['ent_value1'] as $val[]) - это бред
 

chelya

Новичок
Бред, не бред, но работает....

PHP:
for ($j=1; $j<=mysql_num_rows($Res); $j++) 
{ 
.... 
print ' <input type="text" name="ent_value1['.$rr["id"].']" size="5">'; 
... 
}
и

PHP:
$id_sel=$rr["id"]-1;
foreach($_POST['ent_value1'] as $val1[]);		
print $val1[$id_sel];
результат работы данных скриптов - то что требовалось получить....

ЗЫ. а as $val он вместо значения переменной ent_value110
выдает значение подставленного id - 10...
 

Popoff

popoff.donetsk.ua
в любом случае, что бы ты ни хотел получить, foreach($_POST['ent_value1'] as $val[]) - это бред
ну почему же бред :) не бред :)
PHP:
$a=array('q' => 'w','e' => 'r','t' => 'y');
$b=array('u' => 'i');
foreach($a as $b[])
{
  var_dump($b);
}
Код:
array(2) {
  ["u"]=>
  string(1) "i"
  [0]=>
  string(1) "w"
}
array(3) {
  ["u"]=>
  string(1) "i"
  [0]=>
  string(1) "w"
  [1]=>
  string(1) "r"
}
array(4) {
  ["u"]=>
  string(1) "i"
  [0]=>
  string(1) "w"
  [1]=>
  string(1) "r"
  [2]=>
  string(1) "y"
}
Я и не знал, что так можно записать :) Может, для какой-то задачи это и было бы полезно :) Только пока не понятно, для какой %-)

============
добавил инициализацию $b
 

chelya

Новичок
да задача-то следующая:
сайт по пластиковым окнам.
сиё есть расчет стоимости установки окон.
есть форма, где вводятся ширина и высота для различного типа конструкций (балконная дверь, отрываемое окно, неоткрываемое окно и т.п), соответственно данные по каждому типу конструкции лежат БД со своим id...
соответсвенно первый скрипт - ввод значений ширины и высоты для каждого варианта конструкции (массив значений
ent_value1XXX - ширина конструкции с id в базе XXX
ent_value2XXX - высота сей конструкции
а второй скрипт непосредственный расчет (вместо print - расчет по формуле)..
 

Фанат

oncle terrible
Команда форума
при чём здесь окна, если задача - примитивная работа с массивами.
ты мой последний ответ прочитал? Это то, что тебе надо?
 

chelya

Новичок
я просто сформулировал общую задачу - к чему, как гриться идем :)
а если по массивам:
весь передаваемый массив:
Array
(
[m] => 2
[calc] => 3
[entered_hw] => 3
[ent_value1] => Array
( [1] => 10
[2] => 11
.......
[X] => X)
[ent_value2] => Array
( [1] => 1
[2] => 2
........
[X] =>Y)
)
далее есть цикл по количеству строк в БД. в каждом шаге в зависимости от id выбранного из БД он выбирает из массива значение ent_value

в варианте с foreach($array as $key => $value) echo $key, $value;
он передает в каждом шаге цикла последнее значение [X]массива

в варианте foreach($_POST['ent_value1'] as $val1[]) работает почти как нужно... единственная возникающая проблема см. выше (приходится делать:
$id_sel=$rr["id"]-1;
print $val1[$id_sel];
 

SiMM

Новичок
> ну почему же бред :) не бред :)
Можно ссылку на ман, где это описано? Нет? Тогда где гарантия, что это поведение завтра не изменится?
 

chelya

Новичок
[ent_value1] => Array
( [1] => 10
[2] => 11
[3] => 12)

во всех шагах цикла выдает значение 12.
 

Фанат

oncle terrible
Команда форума
и ты хочешь сказать, что перебирая ent_value1 форичем, ты получаешь только 12? Сказки кому-нибудь другому рассказывай.
 
Сверху