PHP 使用 id 更新多行并选择

标签 php mysql

<分区>

此代码获取正确选中的复选框的 ID,但它从我的第一个选择中选择选择下拉列表,而不是我更改的那个。有没有办法来解决这个问题?我正在使用

<select name="status[]"><option value="1">active</option><option value="0">inactive</option></select>

这是我的流程代码。

if (isset($_POST['submit'])) {


// find out how many records there are to update

$size = count($_POST['id']);

// start a loop in order to update each record
$i = 0;
while ($i < $size) {
// define each variable
$id = $_POST['id'][$i];
$status= $_POST['status'][$i];

// do the update and print out some info just to provide some visual feedback
$query = "UPDATE users SET status = '$status' WHERE id = '$id' LIMIT 1";
mysql_query($query) or die ("Error in query: $query");
print "$status | $id<br /><br /><em>Updated!</em><br /><br />";
++$i;
}
mysql_close();
}

最佳答案

我同意这些评论,但是,我只会快速回答这个问题。

为了简单起见,我会在 HTML 中做类似的事情。数组索引可以简单地从 PHP 中的计数器回显或静态输入,如果它不会基于任何其他内容而改变的话。只需为每个项目增加此索引即可。

<input type="checkbox" name="id[0]" value="1"> Some Text
<select name="status[0]">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
</select>

现在是 PHP

if (isset($_POST['submit'])) {

    foreach($_POST['id'] as $i=>$value) {
        if($value == 1) {
            // define each variable
            $id = $_POST['id'][$i];
            $status= $_POST['status'][$i];

            // do the update and print out some info just to provide some visual feedback
            $query = "UPDATE users SET status = '$status' WHERE id = '$id' LIMIT 1";
            mysql_query($query) or die ("Error in query: $query");
            print "$status | $id<br /><br /><em>Updated!</em><br /><br />";
        }

    }
    mysql_close();
}

编辑:

我忘了提到您可以将复选框的值设置为您需要的任何值。只需确保 if($value==1) 检查有效结果(例如 >0 如果您的所有 ID 都是正数)。

关于PHP 使用 id 更新多行并选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10626995/

相关文章:

php - 在类似查询的地方使用 concat

php - 如何使用 bind_result 与 get_result 的示例

用于 MySQL 查询执行的 python StringBuilder

MySQL 时间戳 +5 小时

mysql - : JDBC Connection pooling, 或使用 SIngleton 类进行 JDBC 连接哪个更好?

php - 如何在选择 onChange 事件时重定向到其他方式?

linux - 使用点斜线文件名格式在 Linux 上运行时出现 php 问题

php - 我可以将 PHP MySQL 资源变量分配/复制到其他吗?

php - cake_session 1213 : Deadlock found when trying to get lock; try restarting transaction

mysql - 使用 Golang 将 SQL 查询结果放入嵌套结构中