Php 如何在新列中插入由另一列分组的列的和
我试图将表中的两列“qty*price_dl”相乘,但新列“total1”中的值在同一个表中,这对我来说没有问题 之后,尝试获取按“seq”列分组的“total1”列和同一表中“total2”列中的值之和 我被困在求和的过程中,这对我不起作用 代码如下:Php 如何在新列中插入由另一列分组的列的和,php,mysql,sql,Php,Mysql,Sql,我试图将表中的两列“qty*price_dl”相乘,但新列“total1”中的值在同一个表中,这对我来说没有问题 之后,尝试获取按“seq”列分组的“total1”列和同一表中“total2”列中的值之和 我被困在求和的过程中,这对我不起作用 代码如下: <?php require_once("dbconfig.php"); $q=mysql_query('select * from sale_menu') or die(mysql_error()); echo "<table bo
<?php
require_once("dbconfig.php");
$q=mysql_query('select * from sale_menu')
or die(mysql_error());
echo "<table border='2'>
<tr>
<th>Select</th>
<th>qty</th>
<th>price_dl</th>
<th>total1</th>
</tr><tr>";
while($rw=mysql_fetch_array($q)){
?>
<td><input type="checkbox" value="<?php echo $rw['seq']; ?>" name="seq[]" ></td>
<td><b><?php echo $rw['qty']; ?></b></td>
<td><b><?php echo $rw['price_dl']; ?></b></td>
<td><b><?php echo $rw['total1']; ?></b></td>
<tr>
</tbody>
<?php } ?>
<?php
error_reporting(0);
$seq=$_POST['seq'];
if (isset($_POST['submit']))
{
$impid=implode(", ",$seq);
$qdel=mysql_query("SELECT * FROM sale_menu WHERE seq IN(".$impid.")");
while($row=mysql_fetch_array($qdel)){
$qty=$row['qty'];
$price_dl=$row['price_dl'];
$qdel=mysql_query("UPDATE sale_menu set total1=qty*price_dl WHERE seq IN(".$impid.")");
$qdel=mysql_query("UPDATE sale_menu set total2=sum(total1) WHERE seq IN(".$impid.")");
}
}
?>
<button name="submit" type="submit" value="Checked" id="submit" >Move</button>
您不能将total1作为列放在这里,因为您需要在查询中进行查询,有两种方法可以做到这一点 第一个方法是这样做嵌套查询
$qdel=mysql_query("UPDATE sale_menu set total2= (select sum(total1) as total from table_name) WHERE seq IN(".$impid.")");
第二种方法更简单,只需在此查询之前进行另一个查询,并将sum(total1)的值存储在一个变量中,然后您就可以在该查询中使用该变量
$q=mysql_query('select sum(total1) as total from table_name')
while($rw=mysql_fetch_array($q)){
$total = $rw['total'];
}
$qdel=mysql_query("UPDATE sale_menu set total2= $total WHERE seq IN(".$impid.")");
我希望它能为您工作大约10年前我们停止使用此API。第一个解决方案不起作用,但第二个解决方案部分起作用,它得到一个seq值的总和
$qdel=mysql\u query(“SELECT*FROM sale\u menu,其中seq IN(“.$impid”)$qdel=mysql_query(“按顺序从销售菜单组中选择sum(total1)作为总计”);而($row=mysql\u fetch\u array($qdel)){$total=$row['total'];$qdel=mysql\u query(“更新销售”菜单集total1=qty*price\u dl,其中seq IN(“.$impid”);$qdel=mysql\u query(“更新销售”菜单集total2=$total,其中seq IN(“.$impid”))
total2列的所有值都是求和值,其中seq=2仅用于解释为什么它不适用于其他序号3,4,5..ets。?我只是在最后几行中用新代码更新了上面的问题,这样你就可以清楚地阅读它。如果你知道为什么它只得到seq=2的第一个seq值的和,并用当seq=3和seq=4…等时,这个值。所以我需要让每组seq数得到它的总和,如果你也能帮我的话。谢谢。你可以使用这个技巧来调试你的代码,获取洞查询文本,并在phpmyadmin或其他内部执行,然后你就可以知道查询的作用,例如echo“UPDATE sale_menu set total2=$total WHERE seq IN(“.$impid.”)”,然后它会在html页面中为您打印此代码,获取生成的代码并以更低的速度执行。您将看到值,然后您就可以知道它出了什么问题祝您好运
$q=mysql_query('select sum(total1) as total from table_name')
while($rw=mysql_fetch_array($q)){
$total = $rw['total'];
}
$qdel=mysql_query("UPDATE sale_menu set total2= $total WHERE seq IN(".$impid.")");