2010-12-16 54 views
0

我已經花了最近幾天與MYSQL查詢問題摔跤。我希望有人能指出我正確的方向。查詢問題 - 試圖在討論中對評論進行分組

我查詢兩個表( '問題' 和 '意見')與返回以下佈局的目標:

問題1

  • 註釋1
  • 評論2
  • 評論3

問2

  • 評論4
  • 評論5

等等......

評論是唯一的一個問題(即評論生活在一個父母的問題下)。

我的查詢(我知道是不正確的)看起來是這樣的:

<?php 
    $query = "SELECT discussion.*, comments.* FROM discussion LEFT JOIN comments ON discussion.referenceID = comments.commentID"; 
    $result = mysql_query($query) or die(mysql_error()); 
    while($row = mysql_fetch_array($result)){ 
    echo $row['question']. " - ". $row['comment']. "<br /><br />"; 
} 
?> 

結果:

問題1 - 評1個 問題1 - 評3 問題2 - 評2

我很接近,但無法在單個問題下實現多個評論。我嘗試了「GROUP BY discussion.question」但限制了我的結果:

問題1 - 註釋1個 問題2 - 評2

爲了把它在上下文中我試圖讓用戶提交對單個頁面上顯示的多個問題的評論。

在此先感謝。

RR

+0

你想讓你的最終結果看起來像什麼? – 2010-12-16 04:25:04

回答

1

試試這個:

$query = "SELECT * 
FROM discussion, comments 
WHERE discussion.referenceID = comments.commentID 
GROUP BY discussion.referenceID; 
+0

我喜歡SO--即使是完全錯誤的答案,您也可以獲得高分! ;-) – zerkms 2010-12-16 05:03:18

+0

@zerkms查找任何更好的查詢? – Bnjmn 2010-12-16 06:06:03

+0

你的查詢沒有解決他的任務。他需要獲得**所有評論**,並且此查詢不會返回所有評論。 – zerkms 2010-12-16 06:10:23

0

只存儲前面的問題,並將其與當前。

素描:

$prev_question = null; 
while($row = mysql_fetch_array($result)) { 
    if ($prev_question != $row['question']) { 
     echo '<b>' . $row['question'] . '<b><br />'; 
     $prev_question = $row['question']; 
    } 
    echo $row['comment'] . '<br />'; 
} 
+0

謝謝大家。用你的幫助對這一個進行分類。 – rrfive 2010-12-19 02:41:43

0

Zerkms,輝煌!感謝您的迴應。除了一個問題,完美的作品。

只有在有評論相關的情況下才會顯示問題(我在某個時候引發了自己的問題)。目標是顯示所有評論,不管評論是否被分配。

工作代碼:

<?php 
$query = "SELECT discussion.*, comments.* FROM discussion LEFT JOIN comments ON discussion.referenceID = comments.commentID"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
$prev_question = null; 
while($row = mysql_fetch_array($result)) { 
if ($prev_question != $row['question']) { 
echo "<h3>" . $row['question'] . "</h3>"; 
$prev_question = $row['question']; 
} 
echo "<img src=\"images/bg_addform_topFull.gif\" width=\"446\" height=\"11\" /><div class=\"comment\"><h3>" . $row['author'] . "</h3><div class=\"greyText\">" . $row['dt'] . "</div><p>" . $row['comment'] . "</p></div><img src=\"images/bg_addform_bottom.gif\" width=\"446\" height=\"11\" class=\"footerImage\" />"; 
     } 
     } 
    ?> 

再次感謝您的幫助。

+0

如果你覺得評論如果我的評論值得成爲答案 - 那就用綠色的複選標記來檢查它。這就是stackoverflow的工作原理;-) – zerkms 2010-12-16 06:28:33