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_ids があるとします。

2956 2957 2957 2958

現在の $row['post_msg_id'] は 2958 です。比較対象よりも小さい 3 つの post_msg_id があり、そのうちの 2 つが同じであるため、2 つの異なる post_msg_id しかありません。戻ってきた

しかし、それはうまくいかないようです、私はこれを正しくやっていますか?このメソッドを使用して $topicreplycount 変数に何も返されません

ussign 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() 関数を使用したため、返される結果は 1 つだけなので、これで問題ありません。

ただし、関数の mysql_ ファミリは使用しないことをお勧めします。それらは事実上非推奨です (公式ではありませんが、PHP ドキュメントでさえ使用しないことを推奨しています)。mysqli_ に切り替えるか、PDO に切り替える必要があります。

于 2012-04-11T08:25:28.827 に答える