0

特定の条件に応じて、テーブルの行数を計算しようとしています。それで、私は必要に応じて機能するコードをなんとか書くことができました。

しかし、それは少し長すぎます。それで、それを達成するためのより簡単な方法があるかどうか疑問に思っています。

コード:

// Comments
$sql_total_comments = mysql_query("SELECT * FROM comments");
$sql_pending_comments = mysql_query("SELECT * FROM comments WHERE comment_status = '0'");
$sql_approved_comments = mysql_query("SELECT * FROM comments WHERE comment_status = '1'");
$sql_declined_comments = mysql_query("SELECT * FROM comments WHERE comment_status = '2'");

$total_comments_num = mysql_num_rows($sql_total_comments);
$pending_comments_num = mysql_num_rows($sql_pending_comments);
$approved_comments_num = mysql_num_rows($sql_approved_comments);
$declined_comments_num = mysql_num_rows($sql_declined_comments);
4

3 に答える 3

2
SELECT comment_status, COUNT(comment_status)
  FROM comments GROUP BY comment_status;

コードでは、カウントを合計して合計数にするか、他の回答と同様にCOUNT(*)で別のクエリを実行します。

したがって、PDOを使用していると仮定すると、コードは次のようになります。

$sql = 'SELECT comment_status, COUNT(comment_status) AS "count" '.
  'FROM comments GROUP BY comment_status;';
$query = $db->query($sql);
$count_total = 0;
$count = array( );
while (($row = $query->fetch(PDO::FETCH_ASSOC)) !== FALSE) {
  $count_total += $row['count'];
  $count[$row['comment_status']] += $row['count'];
}
$query = null;  // Because I'm neurotic about cleaning up resources.
于 2012-07-01T04:43:59.083 に答える
1

このような作業を行うには、 COUNT() DBFUNCTIONを使用します。

$ret = mysql_query("SELECT COUNT(*) FROM comments");
$row = mysql_fetch_row($ret);
$total_comments_num = $row[0];
于 2012-07-01T04:31:45.393 に答える
0

使用select count(*) from comments where....。

于 2012-07-01T04:29:08.010 に答える