Нужна помощь для вставки нескольких записей из HTML-формы, используя PHP / MySQL - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть страница PHP, которая генерирует список записей из таблицы (членов) в MySQL в виде HTML-таблицы. Что я хочу сделать, так это иметь возможность проверять (используя флажок) записи, с которыми я хочу работать. Когда я проверяю некоторые / все записи, я хочу добавить дополнительную информацию (количество общих ресурсов, которые есть у каждого участника) и вставить эти записи в другую таблицу (общие ресурсы). Обе таблицы (общие ресурсы и участники) совместно используют столбец (member_ID).

Итак, мне нужна помощь со следующим:

  1. Как мне кодировать HTML-таблицу, чтобы включить флажок, а также поле ввода для количества акций?

  2. Как мне написать свою функцию, которая будет вставлять запись для каждой проверенной записи?

Я понимаю, что об этом нужно спрашивать, поэтому любые усилия, которые помогут мне с этим, будут высоко оценены.

Вот мой [ошибочный] код:

HTML-форма:

<form method="post" action="index.php?action=add_shares&org_ID=<?php echo $org_ID; ?>"     id="add_shares
    <table>
    <?php foreach ($members as $members) : ?>
    <tr>
        <td><input id="member_ID" name="member_ID[]" value="'"$members['member_ID']."'" type="checkbox"></td>
        <td><?php echo $members['nick_name']; ?></td>
    </tr>
    <?php endforeach; ?>
</table>
<input type="submit" value="Click to distribute shares" />
</form>

Вот моя функция:

function add_share($asset_ID, $member_ID, $percent_owner) {
global $db;
$query = "INSERT INTO shares
            (asset_ID, member_ID, percent_owner)
          VALUES
            ($asset_ID, $member_ID, $percent_owner)";
$add_shares = $db->exec($query);

Я считаю, что мне нужен foreach где-то в моей функции. Я также думаю, что мне нужно каким-то образом собрать все проверенные записи из формы html в массив, а затем использовать foreach для вставки каждой записи в массиве.

Спасибо!

1 Ответ

0 голосов
/ 21 ноября 2011

Это не имеет проверки ошибок и предполагает равное распределение долей.

// Assuming equal distribution of shares...
$percent_owner = 100 / count($_POST['member_ID']);
foreach ($_POST['member_ID'] as $member_ID) {
    add_share($_GET['org_ID'], $member_ID, $percent_owner);
}

Я бы переместил action и org_ID в скрытые теги ввода, чтобы все переменные PHP могли быть доступны через переменную $ _POST, но это только я.

<form method="post" action="index.php" id="add_shares">
    <input type="hidden" name="org_ID" value="<?php echo $org_ID; ?>" />
    <input type="hidden" name="action" value="add_shares" />
    ...
<!-- in your PHP code $_GET['org_ID'] becomes $_POST['org_ID'] -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...