2012-10-08 49 views
1

我必须精疲力竭,因为我知道我以前做过这件事,但我不记得我是如何做的,或者是否找到该代码段。我有两个表格“问题”和“答案”。 “questions”中的主要“id”在“答案”中也是“id”。我试图根据该表中的“id”来计算“答案”。从表B中使用ID从表A中计数行php mysql

 <?php 

    $query = "SELECT * FROM questions ORDER BY id DESC"; 

    $result = mysql_query("$query"); 
    while($row = mysql_fetch_array($result)){ 
$id = $row['id']; 
    $date = $row['date']; 
    $question = $row['question']; 
$time = date("U"); 
$likes = $row['likes']; 
    $query2 = "SELECT * FROM answers WHERE id = $id"; 
    $num_rows = mysql_num_rows($query2); 
    print("<span style='font-size: .7em';><a href='qplusone.php?id=$id'>+1</a> 
- Likes:$likes</span> $question - <a href='answer.php?id=$id&pp=$time'>answer it</a> 
or <a href='answers.php?id=$id&pp=$time'>read $num_rows answers</a> 
<span style='font-size: .7em';>($date)</span><br />"); 
    } 

    ?> 
+0

'SELECT COUNT(answers.id)FROM问题LEFT JOIN答案ON questions.id = answers.id WHERE questions.id = $ id' –

回答

1

嗯,首先,你永远不执行$query2的。但是,要比返回所有行并对它们进行计数更好,只需返回mysql计算的行数即可。

$query2 = "SELECT count(*) FROM answers WHERE id = $id"; 
$result = mysql_query($q); 
$row = mysql_fetch_array($result); 

$count = $row['count(*)']; // $count holds the number of matching records. 
+0

哦,好伤心。计数。啧。我知道我现在已经不在了。谢啦。哇。我正在解雇自己 - 在我醒来之后。 – mrmunk

0

要获得每个问题的答案的数量,你可以做到这一点

select q.id, 
     count(*) as answers 
from answer a 
left join questions q on q.id = a.id 
group by q.id 
相关问题