我有一个查询SQL数据库并显示表中所有用户的代码,一切正常,从那里你可以点击任何用户,它显示另一个包含所有信息的表,也可以细
我遇到的问题出现在显示所选用户信息表的页面上。在该页面上,我有一个按钮,允许编辑用户信息并更新数据库。
以下是按钮的代码:
print "<form method='post' action='adminedituser.php'>
<input type='hidden' name='id' value='$id' />
<input type='submit' value='Click here to edit this user' />
</form>";
当我点击它时,它会带我到一个带有输入框的页面,该页面需要显示当前用户名并允许用户输入新值并提交。
我正在尝试在我拥有的HTML表单中调用php变量:
<?php
$id = filter_input(INPUT_POST, "id");
//Make db connection
$conn=mysql_connect("localhost","root","")or die(mysql_error());
//Step 2: select your db to use
mysql_select_db("final",$conn);
//Step 3: Write the sql that we want to run against the database
$result = mysql_query("select id, firstname, lastname, email, phone, username, password, favchar, bio from user where id=$id");
$username = $result["username"];
?>
<form method='post' id='myForm' name='input' action='adduser.php'>
Username: <input type='text' value="<?php echo ($username); ?>" id='uName' name='uName'>
<input type='submit'>
</form>
问题是变量$ username没有显示为文本框值。
我做错了什么?
答案 0 :(得分:3)
首先,如果我不说别人是:请使用mysqli
代替mysql
。如果你愿意,你仍然可以使用程序样式(虽然我可以直接说它很容易学习对象样式),你只需要快速查看mysqli
。 Mysql
已弃用,因此使用起来毫无用处。你最终必须要学习它,所以当你构建一个新程序时,它可能是最简单的。
继续你做错了,是你实际上没有取得任何东西。 MySQL将为您提供一个对象,然后您需要对行进行排序。
所以,你需要做的就是拉mysql_fetch_array
。
你可以这样做:
while($row = mysql_fetch_array($result)) {
$username = $row["username"];
}
答案 1 :(得分:0)
表格代码请改为:
<input type='hidden' name='id' value='<?= $id ?>' />
您忘记“打印”$ id值。
和adminedituser.php的代码:
$id = filter_input(INPUT_POST, "id");
从表单的POST请求中获取“id”字段。