1

我究竟如何使用 php 从数据库中减去值?我看到很多使用静态变量的示例,例如

<?php
$first_number = 10;
$second_number = 2;
$third_number = 3;
$sum_total = $third_number + $second_number * $first_number;
print ($sum_total);
?>

但是,我希望从另一个数据库值中减去一个数据库值,然后将该值乘以另一个数据库值。为了提供更多细节,我有一个库存数据库,其中我将值回显到一个表中,我试图从最小数量中减去一个项目的总数量,看看需要订购多少,然后相乘我们需要按该零件的成本订购的零件数量。我已经挖掘并找到了一些可能的方法,例如

$query = "SELECT `db`, 
         (`minimumquantity` - `totalquantity`) AS `quantitytoorder`
        FROM `db` 
        WHERE id ='".$id."';"

<?php
$minimumquantity = $_GET['minimumquantity'];
$totalquantity = $_GET['totalquantity'];

$quantitytoorder = $minimumquantity - $totalquantity;
print ($quantitytoorder);
?>

请在你笑之前,我是一个初学者,谁能指出我正确的方向,或者为我提供适当的例子?我唯一真正的资源是网络,我发现的大多数例子都是非常高级的。

Field             Type        Null     Key   Default  Extra   
id                int(3)      NO       PRI   NULL     auto_increment 
partnumber        varchar(20) NO             NULL  
description       varchar(20) NO             NULL  
tonerprice        int(20)     NO             NULL  
totalquantity     int(20)     NO             NULL  
minimumquantity   int(20)     NO             NULL  
quantitytoorder   int(20)     NO             NULL  
replencost        int(20)     NO             NULL  
4

3 回答 3

0

首先,您需要研究在 php 中使用 mysql。Php 有一个专门为此而创建的内置类。文档、示例和初学者需要的所有其他内容都可以在此处获得。

其次,您尝试执行的查询是可能的,并且您处于正确的轨道上,请尝试以下操作:

$query = "SELECT (minimumquantity - totalquantity) AS quantitytoorder, (quantitytoorder * costofpart) AS totalcost FROM db WHERE id = '".$id."';";

我的建议是通读 mysqli 文档并先做一些简单的例子来熟悉它——然后你应该尝试完成你自己的任务。

于 2013-08-28T12:57:28.343 回答
0

所以假设你知道如何在 PHP 中使用 SQL,就这么简单:

// STOP USING mysql, use mysqli or PDO, for demonstration purposes only
$results = mysql_query('SELECT foo, bar, baz FROM table');

while ($row = mysql_fetch_assoc($results)) {
    echo $row['foo'] - $row['bar'] * $row['baz'];
}

假设这些列都是数字的,这就是您在 PHP 中从数据库中减去和乘以值所需要做的所有事情。

于 2013-08-28T13:00:29.287 回答
0

试试这个查询

SELECT (value2-value1) as minimumquantity,((value1 + value2)* value3) as totalquantity FROM tableWHERE id = '".$id."';";

于 2013-08-28T13:10:46.440 回答