mysqli从数组更新


mysqli update from an array

我一直纠结于第一步是否正确,以及如何进行下一步。

在第1页我有:

$query="select  index_member, name from members where active=1 order by name";
$rs=$db->query($query);`

然后我在一张桌子上放满了无线电拨号

while($row = $rs->fetch_assoc()) {
    if ($column == 0) {
        echo "<tr>";
    }   
    echo "<td>".$row['name']."</td><td align='center'>";
    echo "<input type='radio' name=".$row['index_member']." value='0'></td>";
    echo "<td align='center'><input type='radio' name=".$row['index_member']." '";
    echo "value='1' checked></td> ";
    $column++;
    if ($column >= 2) {
        echo "</tr>";
        $column=0;
    }
}

这显示:

名称1 0 1

名称2 0 1

名称3 0 1

(0和1表示单选按钮的值)

然后张贴到第二页。在第二页上执行print_r($_POST);返回:

Array ( 
    [21] => 0 
    [7] => 1 
    [12] => 0 
    [20] => 1 
    [33] => 0 
    [22] => 1......

我想循环通过update members set active = *value* where member= *key*;

我不确定如何提取数组信息并将其插入查询的变量中。

另外,对于mysqli有什么特别的考虑吗?

我建议这样命名它们:

echo '<td>';
echo '<input type="radio" name="member['.$row['index_member'].']" value="0" />';
echo '<input type="radio" name="member['.$row['index_member'].']" value="1" checked />';
echo '</td>';

然后,把它当作一个正常的$_POST

索引为index_member,对值为值:

$members = $_POST['member'];
$sql = 'UPDATE members SET active = ? WHERE index_member = ?';
$update = $db->prepare($sql);
foreach($members as $index_member => $val) {
    $update->bind_param('ii', $val, $index_member);
    $update->execute();
}