Вы должны быть в состоянии сопоставить введенные данные со строкой, к которой они применяются. Один из способов сделать это - добавить скрытое значение в каждую строку с идентификатором члена, параллельным владельцу процента. Теоретически они оба будут иметь одинаковый индекс в своих соответствующих массивах, и вам просто нужно сопоставить это. Но это уродливый и ненадежный способ сделать это.
Другой способ справиться с этим (безусловно, лучший из двух способов) состоит в том, чтобы при вводе поля формы в таблице в качестве имени пользовательского поля ввода для% owner указывалось процент_обладателя_ [идентификатор участника]. Затем, когда вы отправляете форму, вы можете просто перебирать переменные POST, ища подстроку «процент_владельца_», и когда вы идентифицируете эти входные данные, вы извлекаете идентификатор члена и введенное пользователем значение и сохраняете его в индексированный массив. Затем вы используете извлеченный идентификатор, чтобы запросить в БД информацию о других членах.
Пример полей формы:
<table>
<?php foreach ($members as $members) : ?>
<tr>
<td><?php echo $members['member_ID']; ?></td>
<td><?php echo $members['nick_name']; ?></td>
<td><input type="text" name="percent_owner_<?=$members['member_ID']?>" value="" size="3"></td>
</tr>
<?php endforeach; ?>
</table>
Затем при отправке вы обработаете это так:
<?php
foreach ($_POST AS $input => $value) {
if (stristr($input, 'percent_owner_')) {
$memberID = str_replace('percent_owner_', '', $input);
$res = mysql_fetch_object(mysql_query("SELECT nick_name FROM members WHERE member_ID = '$memberID'"));
$data[$memberID] = array(
'memberID' => $memberID,
'nickName' => $res->nick_name,
'percentOwner' => $value
);
}
}
?>
<table>
<?php foreach ($data as $member) : ?>
<tr>
<td><?php echo $member['memberID']; ?></td>
<td><?php echo $member['nickName']; ?></td>
<td><?php echo $member['percentOwner']; ?></td>
</tr>
<?php endforeach; ?>
</table>