php - 可以想办法得到这个查询

标签 php database mysqli

我找不到解决问题的方法,有没有更好的方法?

它应该检查数据是否存在,如果存在,则用它和新数量的总和更新最后一个表数量。如果它不存在,则创建表。但我无法让它工作,表只是更新。(数据库中没有数据)

这是我的 php:

$SESSID = session_id(); 
//(session_id,bid,date_added,qty)
$q = "SELECT quantity FROM cart WHERE session_id = '$SESSID' AND item_id = '$itemID'"; 
$r = mysqli_query($dbc, $q);
$check = mysqli_fetch_assoc($r);
if($check=='' && $r==FALSE){
    $addtocart = "INSERT INTO cart (item_id, quantity, date_added, session_id) VALUES ('$itemID', '$qty', '$datetime', '$SESSID')";
    echo 'create';
}else{
    $total = $r + $qty;
    echo $total;
    $addtocart = "UPDATE cart SET quantity = '$total' WHERE session_id = '$SESSID' AND item_id = '$itemID'";
    echo 'update';
}
$r = mysqli_query($dbc, $addtocart);
//go to showcart 
/*header("location:../tienda?cart");*/
exit; 
}

最佳答案

只尝试一个查询:

INSERT INTO `cart` (`item_id`, `quantity`, `datetime`, `session_id`)
VALUES ('$itemID', '$qty', '$datetime', '$SESSID')
ON DUPLICATE KEY UPDATE `qty`=`qty`+values(`qty`)

这假设您的数据库表已正确构建,并且在 (`item_id`,`session_id`) 上有一个 UNIQUE KEY

关于php - 可以想办法得到这个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27555922/

相关文章:

PHP MySQLi 从 multi_query() 插入 id

php - Database_Exception [2]:mysqli_connect():服务器向客户端发送了未知的字符集(255)。请向开发商报告

php - 使用多个参数检索数据的正确 MySQL 语法是什么

php - 如何在 foreach 循环内设置变量以便在 PHP 中进行外部访问?

php - yii 在页面刷新时保存下拉选中状态

php - 在 php 中调整 sql 中的图像大小并显示图像

php - Database_Exception [2]:mysqli_connect():服务器向客户端发送了未知的字符集(255)。请向开发商报告

php - 使用 Cloudinary URL 缩放图像模型中的 Laravel 自定义属性

php - MySQL insert into 在特定字段上失败

php - 在一个 MySQL 查询中最多可以加入多少张表?