Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据每个id的自定义公式,仅使用1个输入字段更改MySQL价格?_Php_Mysql - Fatal编程技术网

Php 根据每个id的自定义公式,仅使用1个输入字段更改MySQL价格?

Php 根据每个id的自定义公式,仅使用1个输入字段更改MySQL价格?,php,mysql,Php,Mysql,我有一个数据库,里面有一些价格: 但我想给每个id一个公式,比如:[那个数字]*或/或-或+[并显示价格] 举个例子: 我只想在这里输入一个价格: 如果我键入10,那么我希望id=0的公式如下: 10*8=80表中至少需要一个包含价格计算的其他字段。例如,一个名为math的字段将为+140。您可以使用一个输入框执行update语句。您可以根据id在update子句中使用CASE语句。它看起来像这样: UPDATE myTable SET price = CASE WHEN id = 0

我有一个数据库,里面有一些价格:

但我想给每个id一个公式,比如:[那个数字]*或/或-或+[并显示价格]

举个例子: 我只想在这里输入一个价格:

如果我键入10,那么我希望id=0的公式如下:
10*8=80表中至少需要一个包含价格计算的其他字段。例如,一个名为math的字段将为+140。您可以使用一个输入框执行update语句。您可以根据id在update子句中使用CASE语句。它看起来像这样:

UPDATE myTable
SET price = 
   CASE WHEN id = 0 THEN (10 * 8)
   WHEN id = 1 THEN (10 + 140) ELSE
   0 END;

如果id不在您的任何类别中,您必须确定一个业务规则作为依据。在我的示例中,我只是将其设置为0。

一个可能的解决方案是: 你有四种可能的操作,你可以说每个操作 有一个id号,例如: 0表示+,1表示-,2表示*和3表示/然后使用模块运算符 确定使用哪种操作员,例如:

例如,如果您正在使用PDO

。。。接通PDO控制器

try {
    $conn = new PDO('mysql:host=localhost;dbname=myDatabase',      $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    

    $stmt = $conn->prepare('SELECT * FROM myTable');
    $stmt->execute();

    while($row = $stmt->fetch()) {
        print_r($row);
        $operator = $row['id'] % 4;
        switch ($operator) {
            case 0:
                $newValue = $inputField + price;
                break;
            case 1:
                $newValue = $inputField - price;
                break;
            case 2:
                $newValue = $inputField * price;
                break;
            default:
                $newValue = $inputField / price;
       }
       $updateStmt = $conn->prepare('UPDATE myTable set prijs = :pirjs WHERE id = :id');
       $updateStmt->execute(array('prijs' = $newValue, 'id' => $row['id']));$stmt->execute(array('id' => $id));
    }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

但是每个id都需要对价格进行不同的计算!我们只有一个价格,比如:3000,根据这个价格,我们必须准确地计算出每一个。我用不同的数学计算得出的每个字段对应一个字段。也就是说,id 1将是+140。Id 2将是/30,…*我只想在一个字段中键入总价,比如:10,然后根据该值进行数学运算,并在数据库中更新总价*谢谢,但我如何仅使用1个输入和一个按钮就可以实现这一点?like:在我的位置,它将根据键入的输入进行计算,如:3000?您可以添加一个where子句,将输入用作参数,其中id=@param@SSDYou添加,然后10*8$strSQL=updateorders$strSQL=SET prijs=$strSQL=id=0时的情况,然后是10*8$strSQL=当id=1时,则为10+140$strSQL=0结束$objQuery=mysql\u query$strSQL;如果$objQuery{echo Save Done.}否则{echo Error Save[.$strSQL.];}mysql\u关闭$objConnect;我不能把这项工作和数据库连接起来,你们可能有一个例子给我,我如何在php页面上用这个表单实现它:谢谢!谢谢现在我的页面上有这个,但我觉得有什么地方不对劲