2012-02-11 11 views
-1

こんにちは私はphp/mysqlを知っていて、各スレッドのコメントを数え、そのスレッドの隣に数字を表示する方法を知りたいと思っています。 基本的には、1ページに25のスレッドタイトルを表示しています。クリックすると、関連するすべてのコメントが表示されているページに移動します。私は単純に "comment_id"を "id"とマッチさせて、タイトルの隣にエコーします。 あなたが私を助けるために必要な情報を教えてください。私はすぐに投稿します。おかげさまで どのようにコメントすることができますそれぞれのスレッドをカウントし、結果をエコー?

答えて

0

私たちはあなたの明確な答えを与えることができるように、関連するテーブルの構造を知っておく必要がありますが、クエリは次のようなものでなければなりません -

SELECT thread.id, thread.title, COUNT(comment.id) AS comment_count 
FROM thread 
LEFT JOIN comment 
    ON thread.id = comment.thread_id 
GROUP BY thread.id, thread.title 

これはかなりの粗例であり、私が持っていませんそれを実行しようとしましたが、それは正常でなければなりません -

<?php 

$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; 
$user = 'dbuser'; 
$password = 'dbpass'; 

try { 
    $dbh = new PDO($dsn, $user, $password); 
} catch (PDOException $e) { 
    echo 'Connection failed: ' . $e->getMessage(); 
} 


$sql = 'SELECT thread.id, thread.title, COUNT(comment.id) AS comment_count 
    FROM thread 
    LEFT JOIN comment 
     ON thread.id = comment.thread_id 
    GROUP BY thread.id, thread.title'; 

$results = $dbh->query($sql); 

while ($row = $results->fetchObject()) { 

    print "<a href=\"show_thread.php?thread_id={$thread->id}\">{$row->title} ({$row->comment_count})</a><br />\n"; 

} 

?> 
+0

どのように結果をエコーし​​ますか? –

+0

あなたはこれまでどんなコードを持っていますか? – nnichols

+0

'$ comment_query = mysql_query(" SELECT COUNT(*)FROM wall where comment_id = {$ current_thread} "); while($ comment_result = mysql_fetch_array($ comment_query)){ \t \t echo $ comment_result [0]; ' 何が私のために働いたのですか? –

関連する問題