2016-03-08 274 views
-1

我從StackOverflow嘗試了很多關於這個錯誤的東西,但沒有運氣。注意:未定義的索引:comment_author

我嘗試顯示評論回覆。顯示回覆評論以及發佈日期和時間,但未發佈發佈回覆的作者。

與錯誤的頁面是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> 
     "; 
    } 
?> 

希望弄清楚這個錯誤。

謝謝,最好的問候。

+4

哪些列名稱? –

+5

我會把錢放在'comment_author'不是列名的事實上。 – Matt

+0

我很確定,如果你做了'var_dump($ row)',就不會有'$ row ['comment_author']'索引。 – Asur

回答

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'"; 
+0

如何正確地爲我的需求進行查詢?我的意思是在「c」,「u。」... 表之間的關係..如何在代碼中實現? 我敢肯定,我寫的什麼是錯的: $ get_com = 「選擇日期,評論,USER_NAME從意見 'COMMENT_AUTHOR' 內連接用戶的USER_ID = 'USER_ID' 其中POST_ID = '$ get_id'」 ; –

+0

您需要知道'users'表的名稱以及包含user_name的列的名稱。我假設用戶表是'users',名稱列也是'name' –

+0

是....用戶表是「用戶」,但用戶列是「user_name」。表「評論」有「comment_id」,「post_id」,「user_id」,「評論」,「日期」。 –

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查詢。