gpt4 book ai didi

php - 查找两个 # 值之间的差异,其中 itemname = 对于一个特定的 id 相同

转载 作者:行者123 更新时间:2023-11-29 03:06:28 25 4
gpt4 key购买 nike

我有一个名为“items”的表

id       month       year       **itemname**       distmoney
1 12 2012 chicken 20
2 12 2012 pork 15
3 11 2012 chicken 21
4 11 2012 pork 15

我试图找出两个月之间同一商品名称的“distmoney”之间的区别,仅针对一个特定商品(通过使用 WHERE id = $id)

例子:

ID 1,元素名称鸡。第 12 个月的 distmoney 是 20,而第 11 个月的 distmoney 是 21。我希望能够计算 id=1,itemname=chicken 的 1 的差值。它应该只显示鸡肉的差异,而不是任何其他项目名称(如 pig 肉)。

现在我有 php 代码来计算两个数字之间的差值,但我很难弄清楚如何获取上个月的 distmoney。

能够找到特定项目名称的上个月的 distmoney 并将其插入名为“oldmoney”的新列中也可行,但我不确定如何执行此操作。 p>

示例:对于 id 3,itemname chicken。当前 distmoney 是 20,上个月(在 id = 1 中找到)是 20。让我们取 20 并将其插入到 id 3 下的新列中。

<?php
foreach($rows as $row):
$number1 = htmlentities($row['distmoney'])
endforeach;

$number1 = $row['distmoney'];
$number2 = ????????; // THIS NEEDS TO BE THE PREVIOUS MONTH DISTMONEY VALUE
if ($number1 <= $number2) {
$difference = "(Price Lowered) Price difference of $";
$result = $number2 - $number1;
$percent = round(100.0*($number2-$number1)/$number1);
echo $difference; echo $result; echo $percent; echo "%";
} elseif ($number1 > $number2) {
$result = $number1 - $number2;
$percent = round(100.0*($number2/$number1-1));
$addition = "(Price Higher) Price difference of $";
echo $addition; echo $result; echo $percent; echo "%";
}

?>

最佳答案

当您查询项目时,ORDER BY itemname首先

然后,做一些事情,比如

//Create a variable to hold the "previous month" values
$previousItemName = '';
$previousDistMoney = '';

//Check each record from your query
foreach($rows as $row) {

//If not first time around && same item name as previous
if($previousItemName != '' && $previousItemName == $row['itemname']) {

//subtraction calculation here
//$difference = $row['distmoney'] - $previousDistMoney; ??
//echo $difference; ??
}

//Assign the "previous month" value
$previousItemName = $row['itemname'];
$previousDistMoney = $row['distmoney'];
}

虽然这两种方式都有点脏,但您可以选择循环:for($i =0; $i < count($results); $i++) { }

然后检查$results[$i-1]['distmoney']的值;


编辑。

如果您知道查询字符串中的 ID,只需将其放入您的查询中...这样就只会返回 2 个“鸡”记录:

select  itemname, distmoney from items where itemname in (
select itemname from items where id = 3
)

关于php - 查找两个 # 值之间的差异,其中 itemname = 对于一个特定的 id 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com