PHP / MySql字段名称的未定义索引

时间:2012-04-16 07:53:34

标签: php mysql

我正在创建自己的博客网站。我似乎无法弄清楚这有两天是错的。我要做的是从表中获取作者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 ...我确定我拼写了正确的字段名称。代码的第一部分没有任何问题。第二部分是如何成为问题的?完全一样。

4 个答案:

答案 0 :(得分:4)

你做

SELECT id 

但是你找到了行user_name。它不存在,所以你得到索引不存在的警告。

答案 1 :(得分:0)

您在查询中选择了列id,但之后您正在使用$author_row["user_name"]。 将其更改为$author_row["id"]或在查询中使用SELECT user_name

答案 2 :(得分:0)

您只从数据库中选择字段iduser_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'"));

使用此查询获取用户的所有信息。