如何计算while循环中查询的行数


how to count the number of rows of a query inside a while loop?

我有以下php代码

$thread_pick=mysqli_query($db,'SELECT * FROM u_mess WHERE participant_1="'.$display_name.'" OR participant_2="'.$display_name.'" ') or trigger_error(mysqli_error());
if(mysqli_num_rows($thread_pick) >= 1 )
{
  while($row = mysqli_fetch_assoc($thread_pick))
  {
    $thread_pick_sub = mysqli_query($db,'SELECT * FROM u_mess_thread WHERE (thread_id="'.$row['thread_id'].'" AND mess_to="'.$display_name.'" )')or trigger_error(mysqli_error());
    echo mysqli_num_rows($thread_pick_sub).'dsddsds';
    $mess_num_count = mysqli_num_rows($thread_pick_sub);
  }
}

我的问题是:该表有两个用户,用户1发送了3条消息,用户2发送了2条消息,现在变量$mess_num_count内的期望值应该是5,但它显示了2我该怎么做才能使其工作

我认为它只计算来自user 2的消息,所以它是2

要获得5,您必须使用操作员+=,如下所示:

$mess_num_count += mysqli_num_rows($thread_pick_sub);

代码应该是这样的:

$thread_pick=mysqli_query($db,'SELECT * FROM u_mess WHERE participant_1="'.$display_name.'" OR participant_2="'.$display_name.'" ') or trigger_error(mysqli_error());
$mess_num_count = 0;
if(mysqli_num_rows($thread_pick) >= 1 )
{
  while($row = mysqli_fetch_assoc($thread_pick))
  {
    $thread_pick_sub = mysqli_query($db,'SELECT * FROM u_mess_thread WHERE (thread_id="'.$row['thread_id'].'" AND mess_to="'.$display_name.'" )')or trigger_error(mysqli_error());
    echo mysqli_num_rows($thread_pick_sub).'dsddsds';
    $mess_num_count += mysqli_num_rows($thread_pick_sub);
  }
}