doq13207
2016-03-08 08:59 阅读 25
已采纳

注意:未定义的索引:comment_author

I tried many things from StackOverflow regarding this error but with no luck.

I try to show a reply from a comment. The reply comment is shown along with the date and hour when posted but the author who posted the reply is not shown.

The page with error is comments.php on the line $com_name = $row['comment_author'];

The code is:

<?php
    $get_id = $_GET['post_id'];

    $get_com = "select * from comments where post_id='$get_id'";

    $run_com = mysqli_query($con, $get_com);

    while($row=mysqli_fetch_array($run_com)){

        $com = $row['comment'];
        $com_name = $row['comment_author'];
        $date = $row['date'];

        echo "

            <div id='comment'>
            <h3>$com_name</h3><i>Said</i> on $date
            <p>$com</p>
            </div>
        ";
    }
?>

Hope to sort out this error.

Thank you and best regards.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    dpkt17803 dpkt17803 2016-03-08 09:09

    It looks like there are no column with name comment_author. But there are field user_id. You need to modify you query to below (assume user table users has fields user_name and user_id)

    $get_com = "select c.date, c.comment, u.user_name as comment_author 
        from comments c inner join users u on c.user_id = u.user_id 
        where c.post_id='$get_id'";
    
    点赞 评论 复制链接分享
  • dqy92287 dqy92287 2016-03-08 09:09

    The answer is simple. The column_author column simply does not exist in your comments table. You probably need to join the comments table with the table that actually contains the data you need.

    Example:

    SELECT A.*, B.`name` as comment_author FROM `comments` A
    LEFT JOIN `users` B ON A.`user_id` = B.`id`
    WHERE A.`post_id`='$get_id'

    Remember to always properly escape your SQL queries.

    点赞 评论 复制链接分享

相关推荐