更新脚本中必需的ID未被存储(甚至未被看到!?)(PHP MySQL)

更新脚本中必需的ID未被存储(甚至未被看到!?)(PHP MySQL),php,mysql,Php,Mysql,我真的需要这方面的帮助…我花了3个小时试图弄明白 基本上,我有3个表需要这个函数工作(查询和PHP)。。。作者、书籍和用户 一个作者可以有很多书,一个用户可以有很多书——就是这样 当管理员用户选择更新一本书时,他们会看到一个表单,在字段中显示当前数据,非常直接。。。然而,有一个棘手的部分,管理员用户可以更改一本书的作者(万一他们出错),也可以更改与该书相关联的用户 当我选择更新单个图书信息时,我不会得到任何作者id或用户id的值。这意味着,当用户更新图书信息时,与用户和作者的关联将被完全取消(在

我真的需要这方面的帮助…我花了3个小时试图弄明白

基本上,我有3个表需要这个函数工作(查询和PHP)。。。作者、书籍和用户

一个作者可以有很多书,一个用户可以有很多书——就是这样

当管理员用户选择更新一本书时,他们会看到一个表单,在字段中显示当前数据,非常直接。。。然而,有一个棘手的部分,管理员用户可以更改一本书的作者(万一他们出错),也可以更改与该书相关联的用户

当我选择更新单个图书信息时,我不会得到任何作者id或用户id的值。这意味着,当用户更新图书信息时,与用户和作者的关联将被完全取消(在关联之前)。。。我看不出为什么会发生这种情况,因为我可以清楚地看到源代码中用户和作者的ID以及我的选项值(这是因为它们位于select下拉列表中)。以下是我检索用户ID的sql:

从用户中选择用户id、名称

然后我有我的选择选项,它会显示系统中的所有用户:

<label>This book belongs to:</label> <select name="name" id="name">
<option value="<?php echo $row['user_id']?>" SELECTED><?php echo $row['name']?> - Current</option>

         <?php   
              while($row = mysql_fetch_array($result))
        { ?>                        <option value="<?php echo $row['user_id']; if (isset($_POST['user_id']));?>"><?php echo $row['name']?></option>
<?php } ?>

此查询的结果不返回author\u id或user\u id的值。。。显然,在这个问题上,我已经给出了用户资料的信息(显示HTML),但我猜我对作者也有同样的问题。。。如何将这些ID传递给脚本,以便确认更改!!:(

看起来用户id是由表单在名为“name”的元素中发布的,因此您需要在PHP中阅读它:

$user\u id=$\u POST['name']

Author ID和其他变量似乎根本没有在表单中指定,因此PHP将为您提供空值


如果在错误报告中打开通知,PHP将告诉您是否尝试访问未声明的数组元素。

但是“name”不应该是列的标题吗?我的books表中没有name列,而是它的user\u id,因此如果我将其更改为name,它不能存储在任何位置,可以吗?author id和其他变量是c以相同的格式调用用户,但在PHP脚本中使用不同的查询开始,如果您输入:var\u dump($\u POST);您将看到从表单发送的变量。现在,如果您将选择框的名称字段更改为“user\u id”,那么您将看到表单在“user\u id”字段中传递id,这就是您想要的。
$book_id = $_POST['book_id'];
    $bookname = $_POST['bookname'];
    $booklevel = $_POST['booklevel'];

    $author_id = $_POST['author_id'];
    $user_id = $_POST['user_id'];


    $sql = "UPDATE books SET bookname= '".$bookname."', booklevel= '".$booklevel."', author_id='".$author_id."', user_id= '".$user_id."' WHERE book_id = ".$book_id;