如何在PHP中更新记录?

时间:2015-06-25 18:09:50

标签: php mysql pdo

我想通过我使用pdo的方式更新php中的产品数量。 有一个按钮来更新数量。 但问题是,当我第一次点击按钮更新数量(jumlah)数据库获得更新时,但当我一次又一次地点击时......数量仍然相同,根本没有变化。应该是当我按下那个按钮时,数量会增加到一个。

update.php

$id_penjualan=$row['id_penjualan'];
$query="select * from tb_detail_penjualan,tb_buku where tb_buku.id_buku=tb_detail_penjualan.id_buku and tb_detail_penjualan.id_buku='$_GET[id_buku]'";
$stmt=$con->prepare($query);
$stmt->execute(array(":id_penjualan"=>$id_penjualan));
$stmt->execute();
$row=$stmt->fetch(PDO::FETCH_ASSOC);
if($row>0){
    $id_buku=$row['id_buku'];
    $harga=$row['harga'];
    $jumlah=$row['jumlah'];
    $jmltambah=$jumlah+1; //problem
    $subtotaltambah = $jmltambah * $harga;
    $penjualan->update_detail_penjualan($jmltambah,$subtotaltambah,$id_penjualan,$id_buku,$id_pelanggan); 

class_penjualan.php

public function update_detail_penjualan($jmltambah,$subtotaltambah,$id_penjualan,$id_buku,$id_pelanggan)
    {
        try
        {
            $stmt=$this->db->prepare("UPDATE tb_detail_penjualan SET jumlah=:jmltambah, subtotal=:subtotaltambah WHERE id_penjualan=:id_penjualan 
                                                AND id_buku=:id_buku AND id_pelanggan=:id_pelanggan");
            $stmt->bindparam(":jmltambah", $jmltambah);
            $stmt->bindparam(":subtotaltambah", $subtotaltambah);
            $stmt->bindparam(":id_penjualan",$id_penjualan);
            $stmt->bindparam(":id_buku",$id_buku);
            $stmt->bindparam(":id_pelanggan",$id_pelanggan);

            $stmt->execute();

            return true;
        }
        catch (PDOException $e)
        {
            echo $e->getMessage();
            return false;
        }
    }

1 个答案:

答案 0 :(得分:2)

而不是在PHP中执行

$jmltambah=$jumlah+1; 

您可以在SQL查询中正确执行

UPDATE tb_detail_penjualan SET jumlah= jumlah + 1 ...