这个表单和MySQL查询有什么问题?

时间:2012-07-06 06:11:11

标签: php mysql checkbox

我有一个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  &darr;</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");

?>

1 个答案:

答案 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'])) ...

最后一点是,我们需要知道错误或错误。