2013-01-10 57 views
0

我有一個組正在更新組中的成員。角色ID爲11的成員正在等待處理,我想根據下拉列表中選擇的選項更改其角色ID。從幾個連接的表單更新數據庫

這裏的形式:

<form action='updatePendingMembers.php' method='post' onsubmit='return checkForm()'> 
    <?php 
    $pendingMembers = "SELECT m.id, concat(fname, ' ', lname) as mName, email, m.rolesID FROM member m join member_to_groups on m.id = member_to_groups.memberID left join groups on member_to_groups.groupsID = groups.id WHERE m.rolesID = 11 AND groups.memberID = " . $_SESSION['siteMemberId']; 
    $rsPendingMembers = mysql_query($pendingMembers); 
    //if(!$rsPendingMembers) 
     //echo 'the query is: ' . $pendingMembers . '<br/>and the error: ' . mysql_error(); 
    while($get_row = mysql_fetch_assoc($rsPendingMembers)){ 
    ?> 
    <tr> 
     <td colspan="3" class="Sub_Header">Pending Group members</td> 
    </tr> 
    <tr> 
     <td colspan="3"><span class="Maintext"><?php echo $get_row['mName']?></span> 
    <select name="rolesID" class="lowermenu" id="rolesID"> 
     <option value="12">Accept</option> 
     <option value="11">Decline</option> 
    </select> 
     <a href="mailto:<?php echo $get_row['email']?>"><span class="lowermenu">send pending member message</span></a></td> 
     </tr> 
    <?php } ?> 
    <td><span class="Sub_Header"> 
     <input name="update_pending_member_button" type="submit" id="update_pending_member_button" value="Update Member"> 
     </span></td> 
     </form> 

這裏的updatePendingMembers.php文件至今:

<?php 
session_start(); 
include("global.php"); 
$myQuery1 = "UPDATE member SET rolesID = " . mysql_real_escape_string($_POST['rolesID']) WHERE id = ; 
$rs1 = mysql_query($myQuery1); 
?> 

如何設置誰被選中,並在特定的組ID等於成員?謝謝。

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護,[棄用過程](http://j.mp/Rj2iVR)已經開始。看到[**紅框**](http://j.mp/Te9zIL)?學習[**準備語句**](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http:// php。 net/mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

回答

1

使用陣列狀的形式elemnts名稱:

<select name="rolesID[<?php echo $get_row['id']; ?>]" class="lowermenu" id="rolesID"> 
    <option value="12">Accept</option> 
    <option value="11">Decline</option> 
</select> 

$_POST數據看起來就像是:

$_POST['rolesID'] = array(
    '1' => '11', 
    '2' => '12' 
); 

你可以通過它遍歷和更新每個記錄:

foreach ($_POST['rolesID'] as $id => $role) { 
    $id = (int)$id; 
    $role = (int)$role; 
    $sql = "UPDATE member SET roleID = {$role} WHERE id = {$id}"; 
} 
+0

謝謝。我實施了你的建議。當我回應查詢時,它顯示它應該是完全一樣的: 「查詢是:UPDATE member SET rolesID = 12 WHERE id = 2」 ...但它並未在數據庫中進行更新。這是爲什麼? – user1810546

+0

我想通了。非常感謝! – user1810546

+0

如果成員被拒絕,他們需要從members_to_groups中刪除。我怎麼做? – user1810546