如何在新col

时间:2017-11-15 10:01:32

标签: php mysql sql

我试图乘以2列" qty * price_dl"表格,但新栏目中的值" total1"在同一张桌子上,这对我没有问题

之后试图得到" total1"按" seq"分组的列列,但" total2"中的值同一列中的列 我陷入了总结的过程中,它并没有与我合作 这是代码:

<?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>

这是我卡住的地方:

$qdel=mysql_query("SELECT * FROM sale_menu WHERE seq IN(".$impid.")");
$qdel=mysql_query("select sum(total1) as total from sale_menu group by seq");
while($row=mysql_fetch_array($qdel)){
$total =  $row['total'];
$qdel=mysql_query("UPDATE sale_menu set total1=qty*price_dl WHERE seq IN(".$impid.")");
$qdel=mysql_query("UPDATE sale_menu set total2= $total WHERE seq IN(".$impid.")");

1 个答案:

答案 0 :(得分:1)

你不能把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.")");

我希望它适合你