繁体   English   中英

更新多个 SQL 行

[英]Updating Multiple SQL Rows

我的设置是这样的:

管理员根据地址或客户名称搜索订单。 一旦根据他们输入的搜索条件显示了他们的所有订单,他们就可以使用复选框 select 订单。 下面的代码处理:

<form action="noJavaScript.php" name="theForm" method="post">
<table style="border: 1px solid black">
    <?php
        while ($row = mysql_fetch_assoc($result))
        {
            echo '<tr><td>';
            echo '<input type="checkbox" name="selected[]"  value="'.$row['order_number'].'"/>';
            echo '</td>';
            foreach ($row as $key => $value)
                echo '<td>'.htmlspecialchars($value).'</td>';
            echo '</tr>';
        }
    ?>
</table>
<input type="submit" name="submit" value="Edit/Modify Order" onClick="document.theForm.action='modify.php'">
<input type="submit" name="submit" value="Clone Order" onClick="document.theForm.action='clone.php'">
<input type="submit" name="submit" value="Delete Order" onClick="document.theForm.action='deleteorder.php'">
</form>

我想要完成的是取决于他们有多少订单 select, 1, 5, 10, 所有这些,当他们点击删除订单按钮时,我希望他们选择的所有订单都在数据库中更新。 我不知道该怎么做。 我尝试了以下方法:这是我的 deleteorder.php 页面上的代码:

$id = array();
$id = $_POST['selected'];

//Include database connection details
require_once('config_order.php');

//Connect to mysql server
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link) {
    die('Failed to connect to server: ' . mysql_error());
}

//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
    die("Unable to select database");
}


//Create query
$query = mysql_query("UPDATE PropertyInfo SET order_status = 'In-Active' WHERE  `order_number` LIKE $id[0]");

这不起作用,因为它只更新分配给 $id[0] 的值,而不是他们可能选择的所有订单。

任何帮助将不胜感激! 谢谢

我假设 $id 是所有选择的 id 的数组:

$query  = "UPDATE PropertyInfo SET order_status = 'In-Active' WHERE ";
$query .= "`order_number` IN (".implode(',', $id).") ";
$results = mysql_query($query);

使用implode以逗号分隔数组值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM