Php倍数。任何其他方式使这项工作

时间:2018-03-20 00:10:43

标签: php mysql

我正在创建一个表单,我必须在我的dB中将一个复选框btn组中的几个值插入到不同的列中。我还必须插入两个不同的值,具体取决于是否检查了btn。 我通过以下方式使其工作,但是还有另一种方式让这变得更简单了吗?它有很多issets :)。
谢谢你的时间。

最好的问候!
NM

library(data.table)
setDT(inv)
setDT(svc)

inv[svc, on="Item", c("onPO","onHand") := .(i.Backordered, `i.Rcv'd`)]

#inv   original table
#svc   update table
#on=   match on specified variable
# :=   overwrite  onPO    with  Backordered
#                 onHand  with  Rcv'd


#          Item onHand demand onPO
# 1:   10100200    600   3300 2700
# 2:   10100201      0     NA   20
# 3:   10100202     39     40    1
# 4:   10100203      0     40   40
# 5:   10100204      0     NA  100
# 6: 10100205-A     44     NA   18
# 7:   10100206     40     70   30
# 8:   10100207      0    126  126
# 9:   10100208      0     10   10
#10:   10100209      0     10   10
#11:   10100210      0    250  250

2 个答案:

答案 0 :(得分:1)

这就是我要做的事情:

<form action="" method="post">
    <input type="checkbox" name="fixvalue"> Checkbox<br>
    <input type="checkbox" name="valueone"> Checkbox 1<br>
    <input type="checkbox" name="valuetwo"> Checkbox 2<br>
    <input type="checkbox" name="valuethree"> Checkbox 3<br>
    <input type="checkbox" name="valuefour"> Checkbox 4<br>
    <input type="checkbox" name="valuefive"> Checkbox 5<br>
    <input type="submit" name="submit">
</form>

<?php

$fields = [
    'fixvalue' => 0,
    'valueone' => 0,
    'valuetwo' => 0,
    'valuethree' => 0,
    'valuefour' => 0,
    'valuefive' => 0
];

if($_POST['submit']){
    foreach($_POST as $key => $value) {
        if($key !== 'submit') {
            $fields[$key] = $key;
        }
    }

    extract($fields);
    $sql = $db->prepare("INSERT INTO table_name (fixvalue, valueone, valuetwo, valuethree, valuefour, valuefive) VALUES(:fixvalue, :valueone, :valuetwo, :valuethree, :valuefour, :valuefive)");
    foreach ($fields as $key => $value) {
        $sql->bindValue(':'.$key, $$value);
    }
    $sql->execute();
}

?>

答案 1 :(得分:0)

$checks = array(
    'fixvalue',
    'frtvalue',
    'secvalue',
    'thevalue',
    'fovalue',
    'fitvalue'
);
$data = array();
foreach( $checks as $value){
    $data[$value] = isset($_POST[$value]) && $_POST[$value] != '' ? $_POST[$value] : 0;
}

在准备好的sql语句中使用$data['frtvalue']