我正在创建自己的博客网站。我似乎无法弄清楚这有两天是错的。我要做的是从表中获取作者ID,然后从另一个表中获取作者信息。
// Get post author
$post_id = $_GET["view"];
$post_row = mysql_fetch_assoc(mysql_query("SELECT post_author FROM posts WHERE post_id='$post_id'"));
$post_author = $post_row["post_author"];
// Get post author information
$author_row = mysql_fetch_assoc(mysql_query("SELECT id FROM users WHERE id='$post_author'"));
$author_username = $author_row["user_name"];
echo $author_username;
但是,我收到此错误消息,注意:未定义索引:user_name in ...我确定我拼写了正确的字段名称。代码的第一部分没有任何问题。第二部分是如何成为问题的?完全一样。
答案 0 :(得分:4)
你做
SELECT id
但是你找到了行user_name
。它不存在,所以你得到索引不存在的警告。
答案 1 :(得分:0)
您在查询中选择了列id
,但之后您正在使用$author_row["user_name"]
。
将其更改为$author_row["id"]
或在查询中使用SELECT user_name
答案 2 :(得分:0)
您只从数据库中选择字段id
。 user_name
不存在,因为您没有选择它。
$author_row = mysql_fetch_assoc(mysql_query("SELECT id, user_name FROM users WHERE id='$post_author'"));
调试提示:在这种情况下,始终执行print_r( $author_row )
以查看查询实际返回的内容。在这种情况下不适用,但同样重要的是要echo mysql_error()
检查查询本身是否存在错误。
答案 3 :(得分:0)
$author_row = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE id='$post_author'"));
使用此查询获取用户的所有信息。