0

我有一个这样的mysql查询:

$topicreplycount = mysql_query('SELECT COUNT(DISTINCT post_msg_id) FROM phpbb_attachments WHERE topic_id = '.$row['topic_id'].' AND post_msg_id < '.$row['post_msg_id']);

并希望使用以下方法获得结果:

$topicreplycount = mysql_result($topicreplycount);

所以假设表中有 4 个这样的 post_msg_id:

2956 2957 2957 2958

并且当前 $row['post_msg_id'] 是 2958,有 3 个 post_msg_ids 小于我要与之比较的那个,并且只有 2 个不同的 post_msg_ids,因为其中两个是相同的,我期待“2”是回来

但它似乎不起作用,我这样做正确吗?使用此方法,我根本没有在 $topicreplycount 变量中返回任何内容

我很确定 usign mysql_result($topicreplycount) 一定是错的,但不知道用什么代替

4

2 回答 2

2

试试这个:

$sql = mysql_query('SELECT COUNT(DISTINCT post_msg_id) AS num_topics FROM phpbb_attachments WHERE topic_id = '.$row['topic_id'].' AND post_msg_id < '.$row['post_msg_id']);
$result = mysql_result($sql);
$row = mysql_fetch_array($result) or die(mysql_error());
echo $row['num_topics'];
于 2012-04-11T08:25:47.130 回答
1

使用mysql_result您需要至少指定行号,以便

$topicreplycount = mysql_result($topicreplycount,0);

应该管用。因为您使用了 COUNT() 函数,所以只会返回一个结果,这很好。

但是,建议不要使用 mysql_ 系列函数。它们实际上已被弃用(不是正式的,但即使是 PHP 文档也建议不要使用它们)。您应该切换到 mysqli_ 或者更好的是 PDO。

于 2012-04-11T08:25:28.827 回答