注意:未定义的索引:comment_author

时间:2016-03-08 08:59:05

标签: php mysql

我从StackOverflow尝试了很多关于这个错误的事情,但没有运气。

我尝试显示评论的回复。回复评论与发布时的日期和小时一起显示,但发布回复的作者未显示。

comments.php

上的错误页面为$com_name = $row['comment_author'];

代码是:

<?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>
        ";
    }
?>

希望能解决这个错误。

谢谢你,并致以最诚挚的问候。

2 个答案:

答案 0 :(得分:0)

答案很简单。您的column_author表格中根本不存在comments列。您可能需要将评论表加入实际包含所需数据的表

示例:

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'

请记住始终正确地逃避SQL查询。

答案 1 :(得分:0)

看起来没有名称为comment_author的列。但是有字段user_id。您需要将查询修改为以下(假设用户表users包含字段user_nameuser_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'";