我试图用一个按钮更新我的数据库,将可见性从 0 设置为 1。没有任何语法错误,但由于某种原因它不会更改数据库值。我的数据库示例:(可见性是 tinyint,默认值为 0)
id- name- visibility
---------------------------
1 - John - 1
---------------------------
2 - Ben - 1
---------------------------
3 - Terry - 0
---------------------------
和我的 php 代码:
<?php
$sql = "SELECT id, name, image, description, address, phone, phone2, email, job, visibility FROM cards";
$resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
while( $record = mysqli_fetch_assoc($resultset) ) {
?>
<div class="col-md-4" <?php if ($record['visibility'] == 1) echo " style='display: none';"; ?>>I want this to be hidden here</div>
<button type="button" class="btn btn-success" name="update">Accept</button>
<?php
if(isset($_POST['update'])){
$allowed = mysqli_query($conn," UPDATE cards SET visibility = '1' WHERE id = '$id' ");
}
?>
//html stuff here
<?php }
?>
您必须将按钮包装成 a<form>
并设置其type to submit
. 此外,您需要通过records id
它。试试这个例子:
<?php
$sql = "SELECT id, name, image, description, address, phone, phone2, email, job, visibility FROM cards";
$resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
while( $record = mysqli_fetch_assoc($resultset) ) { ?>
<div class="col-md-4" <?php if ($record['visibility'] == 1) echo " style='display: none';"; ?>>
Record name: <?php echo $record['name']; ?>
<form action="" method="POST">
<input value="<?php echo $record['id']; ?>" name="id">
<button type="submit" class="btn btn-success" name="update">Set visibile</button>
</form>
</div>
<?php } ?>
<?php
if(isset($_POST['update'])){
$id = $_POST['id'];
$allowed = mysqli_query($conn," UPDATE cards SET visibility = '1' WHERE id = '$id' ");
}
?>
如果你让它工作,你应该搜索关于prepared statements
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句