我如何更新sql记录的复选框在php


How i can update sql record by checkbox in php?

我是PHP新手所以我遇到了一个问题,我在MySQL中得到了这些行

+---+--------------+
|ID |  published   |
+---+--------------+
| 1 |    TRUE      |
| 2 |    FALSE     |
| 3 |    TRUE      |
+---+--------------+

例如,我想更新ID号。

<?php 
$host="localhost";  
$username="root";  
$password="password"; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="chek_box_test"; // Table name 
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
?>
<?php 
$id = $_GET['id'];
$select = mysql_query("SELECT * FROM $tbl_name WHERE id = $id");
while($row = mysql_fetch_array($select)){
?>
<form method="post" action="checkbox_test.php?id=<?php echo $id; ?>">
<input type="checkbox" name="publish" <?php
if($row['publish'] == TRUE){
     echo "checked='checked'";
}
?>
/>
<input type='hidden' name='id' value="<?php echo $row['id']; ?>" />
<input type="submit" name="submit" value="Update"></form><?php } ?>
<?php 
if(isset($_POST['submit'])){
    echo $publish = ($_POST['publish'] == 1) ? TRUE : FALSE;
    $id=$_POST['id'];
    $query = mysql_query("UPDATE $tbl_name SET publish = '$publish' WHERE id =$id");
}
?>

我的问题是,如果我检查PHP它只给我'FALSE'值。我希望如果我勾选并点击提交,它会给我"TRUE"或"FALSE"。

请帮我做这件事。如有任何有用的建议,我将不胜感激。

输入字段的值缺失:

<input type="checkbox" name="publish" value="1" <?php
if($row['publish'] == 'yes'){
     echo "checked='checked'";
}
?>
/>

要解决'Undefined index publish'错误,您可以更改

echo $publish = ($_POST['publish'] == 1) ? TRUE : FALSE;

:

$publish = FALSE;
if(isset($_POST['publish']) and $_POST['publish']==1) {
  $publish = TRUE;
}

提及value="TRUE"

   <input type="checkbox" name="publish"  <?php
   if($row['publish'] == 'yes'){
    echo "checked='checked' ";
    echo "value='TRUE'";
   }
   ?>
   />