在mysql中选择一个匹配id为array的数组并计算

时间:2014-03-12 20:25:05

标签: php mysql select

我在表单文本框中有我的帖子值示例:

<input type="number" name="m_id[<?php echo $row['m_id']; ?>]" value="<?php echo $row['m_id']; ?>"/>

<input type="number" name="qty[<?php echo $row['m_id']; ?>]" value=""/>

在我的PHP代码中:

$id = $_POST['m_id'];
$qty = $_POST['qty'];

假设post数组的值为2,4,5,其中qty为输入1,1,1

id    qty
2     1
4     1
5     1

如何选择名为sup_mon的表格,如:

sup_mon table:
      m_id    balance
       1         2
       2         5
       3         20
       4         15 
       5         8

the select will be:
      m_id    balance
       2         5
       4         15 
       5         8

如何从相应m_id中的qty数组输入1,1,1中减去余额。

1 个答案:

答案 0 :(得分:0)

您需要一个包含每个ID的更新查询的循环。您没有提到数据库连接样式,因此我将使用PDO。注意:此代码假定每个id都有一个数量。您还需要更改update语句以匹配您的数据库名称等...

for ($i=0; $i<count($_POST['id']); $i++) {

    $sql = "UPDATE databaseName.sup_mon SET balance = balance - :qty WHERE m_id = :id";

    //if you're debugging, you may want to uncomment the next line:
    //echo $sql;

    //here $dbh is a PDO object - database handler
    $stmt = $dbh->prepare($sql);

    //binds the current id value from the post array
    $stmt->bindParam(':id', $_POST['id'][$i], PDO::PARAM_INT);
    $stmt->bindParam(':qty', $_POST['qty'][$i], PDO::PARAM_INT);

    $stmt->execute();
}