[英]PHP generated SQL Checkboxes - Select / Insert and Delete based on checked
I am having a little trouble with the below 我在以下方面遇到了一些麻烦
(apologies for it being so messy) (为它太乱了而道歉)
I am creating a PHP generated set of check boxes, which i'm passing the variants over to the update_records.php page (below) as values "val1-val2" then splitting them out and trying to check the database if they exist, and if not add the record. 我正在创建一个PHP生成的复选框集,我将这些变体作为值“ val1-val2”传递到update_records.php页面(如下),然后将其拆分出来并尝试检查数据库是否存在,以及如果没有,则添加记录。 All works great, minus the part i can't get my head round - how to delete records when a user unticks a checkbox and then submits.. Anyone able to help? 一切都很好,减去了我无法理解的部分-当用户取消选中复选框然后提交时,如何删除记录。有谁能提供帮助?
if(isset($_POST['variants']) && !empty($_POST['variants'])) {
$arr_variants = $_POST['variants'];
foreach($arr_variants as $variant) {
$storevariants = explode('-', $variant);
$baseid = $storevariants[0];
$colourid = $storevariants[1];
$sql_finalcheck = "SELECT * FROM finalproducts WHERE asset_id = $post_asset_id AND colour_id = $colourid AND base_id = $baseid";
$result = $conn->query($sql_finalcheck);
if ($result->num_rows > 0) {
echo "record already exists"; // just to show a message to show how its handling the data.
}
else {
$sql_add_vars = "INSERT INTO finalproducts (asset_id, colour_id, base_id) VALUES ('$post_asset_id', '$colourid', '$baseid')";
if ($conn->query($sql_add_vars) === TRUE) {
} } } }
Turn all the checked boxes into a list that you can check with NOT IN
: 将所有选中的框变成可以使用NOT IN
进行检查的列表:
if(isset($_POST['variants']) && !empty($_POST['variants'])) {
$arr_variants = $_POST['variants'];
$arr_notin = array();
foreach($arr_variants as $variant) {
$storevariants = explode('-', $variant);
$baseid = intval($storevariants[0]);
$colourid = intval($storevariants[1]);
$arr_notin[] = "($baseid, $colourid)";
$sql_finalcheck = "SELECT * FROM finalproducts WHERE asset_id = $post_asset_id AND colour_id = $colourid AND base_id = $baseid";
$result = $conn->query($sql_finalcheck);
if ($result->num_rows > 0) {
echo "record already exists"; // just to show a message to show how its handling the data.
}
else {
$sql_add_vars = "INSERT INTO finalproducts (asset_id, colour_id, base_id) VALUES ('$post_asset_id', '$colourid', '$baseid')";
if ($conn->query($sql_add_vars) === TRUE) {
}
}
}
$str_notin = implode(", ", $arr_notin);
$sql_delete = "DELETE FROM finalproducts WHERE asset_id = $post_asset_id AND (baseid, colourid) NOT IN ($str_notin)";
$conn->query($sql_delete));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.