我有一个PHP表单,其中每个项目都有复选框。复选框的名称是一个唯一的PHP变量,以便没有重复的条目。当用户选中复选框并单击“更新”时。 MySQL数据库应该更新。但事实并非如此。有什么建议吗?感谢
形式:
<form action='spam.php' method='post'>
<?php
$query = mysql_query("SELECT * FROM files WHERE subject='business' AND active='1' ORDER BY id DESC");
$numrows = mysql_num_rows($query);
if ($numrows > 0)
echo "<h3>Article - Business</h3>
<ol>";
while ($row = mysql_fetch_assoc($query)) {
$id = $row['id'];
$title = $row['title'];
$date = $row['date'];
$active = $row['active'];
$desc = $row['description'];
$author = $row['author'];
$email = $row['email'];
$filepath = $row['file'];
$ext = $row['ext'];
$subject = $row['subject'];
echo "<script>
<li>$title <input type='checkbox' name='$id' value='0' /><$ext| <a href='$filepath'>Download</a>|<a id='aTag$id' href=''>Details ↓</a></li>
";
}
if ($numrows == 0)
echo "";
?>
<br />
<input type='submit' value='Update' name='submitbtn'/>
</form><br />
表格行动:
<?php
if (isset($_POST['$id']))
mysql_query("UPDATE files SET active=0 WHERE id=$id AND subject=$subject");
?>
答案 0 :(得分:1)
首先,我建议您分离从数据库中检索数据并回显输入字段。 其次,我想是
<?php while($row = mysql_fetch_array($result)): ?>
<input type="checkbox" name="<?=$row['id']?>
<?php endwhile; ?>
看起来更漂亮。
第三件事,你不想尝试:
if (isset($_POST[$id])) ...
不
if (isset($_POST['$id'])) ...
最后一点是,我们需要知道错误或错误。