2011-11-20 58 views
0

我有一個PHP頁面,以html表格的形式從MySQL中的表(成員)生成記錄列表。我想要做的是能夠檢查(使用複選框)我想要使用的記錄。當我查看一些/所有記錄時,我想添加更多信息(每個成員的股份數量)並將這些記錄插入另一個表格(份額)中。兩個表(股份&成員)共享一列(member_ID)。需要幫助從一個HTML表格使用PHP/MySQL插入多個記錄

所以,我需要用以下幫助:

  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爲數組中的每個記錄執行插入操作。

謝謝!

+0

你可以發佈你的代碼到目前爲止? – nachito

+0

我有類似的需求,用戶必須從640張卡中挑選他擁有的卡。該表單是用表單中的複選框創建的。我想知道如何編寫更新SQL語句,以獲取每個640卡ID並插入/更新到數據庫。你是如何編碼你的解決方案的? – marciokoko

回答

0

這沒有錯誤檢查,並假設股票的平均分配。

// 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); 
} 

我會移動actionorg_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'] --> 
+0

對於percent_owner,我希望我的表單中有一個文本框,以便它可以是一個鍵入的值。我想爲每個選中的記錄提交member_ID和percent_owner。 – Progger