我正在使用xampp env构建一个简单的购物清单应用程序,
并且我正在尝试使“标记为已完成”的btn工作。
我创建了列“ is_complete”,默认情况下该列为“ false”字符,
并且我想让btn在true和false之间切换此列。
我正在尝试
` <? php
include('config/dbConnect.php');
if(isset($_POST['done'])){
$id_to_mark = mysqli_real_escape_string($conn, $_POST['id_to_mark']);
$sql = "UPDATE items SET is_completed = !is_completed WHERE id = $id_to_mark";
if(mysqli_query($conn, $sql)){
header('Location: index.php');
} else {
echo 'query error: '. mysqli_error($conn);
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<input type="hidden" name="id_to_mark" value="<?php echo $item['id']; ?>">
<input type="submit" name="done" value="Done" class="btn brand green z-depth-0">
</form>`
仅当我的数据库中有一张表时,它才能工作。否则SET is_completed = !is_completed
不知道引用是什么(对我来说这完全有意义)
prblm是,当我尝试执行类似SET is_completed = !($item['is_completed'])
的操作时,它给了我一个错误。
当我尝试SET is_completed = $newStatus
时,我在外面$newStatus = !($item['is_completed'])
仍然犯错:(
(也曾尝试将php标记放入sql arg中,但事实证明这完全是非法的...)
有什么建议吗?
谢谢:)
答案 0 :(得分:0)
您可以使用以下查询:
$sql = "UPDATE items SET is_completed = NOT is_completed WHERE id = $id_to_mark";
即用“ NOT”代替“!”