mysql_num_rows在While循环中的使用



我有一个选择一组匹配元素的查询,然后有一个If条件检查这些匹配元素中的一个(或多个)是否有效,这取决于它们在一对DATE字段中包含的内容。

$allClasses=mysql_query("SELECT * FROM class_conf WHERE cl_fk_te_id='$te_id' && cl_status='1'");
$identifiedClassId="";
 while($registros = mysql_fetch_array($allClasses)){
     $start_date=$registros['cl_startDate'];
     $end_date=$registros['cl_endDate'];
     $start_year=substr($start_date, 6, 4);
     $end_year=substr($end_date, 6, 4);
     $start_month=substr($start_date, 3, 2);
     $end_month=substr($end_date, 3, 2);
     $start_day=substr($start_date, 0, 2);
     $end_day=substr($end_date, 0, 2);
     if(($start_year  <=  $year) && ($end_year  >=  $year) && ($start_month  <=  $month) && ($end_month  >=  $month) && ($start_day  <=  $day) && ($end_day  >=  $day)) {
            $identifiedClassId=$registros['cl_id'];
     }
 }

现在我需要使用类似mysql_num_rows的东西来检查匹配这个If条件的元素总数,我不知道在mysql_num_rows上应用什么查询,因为这个查询(mysql_num_rows($allClasses))将导致在应用If之前匹配元素的数量。

如何获得符合If条件的元素总数?

下面是应该使用的代码:它没有经过测试。它将查询返回的行数的计数设置为$totalElements。

添加了所有赋值到$identifiedClassId的计数,我怀疑这是不正确的。

$allClasses=mysql_query("SELECT * FROM class_conf WHERE cl_fk_te_id='$te_id' && cl_status='1'");
$totalElements = mysql_num_rows($allClasses); // count of the elements 
$identifiedClassId="";
$countIdentifiedClassId = 0;
 while($registros = mysql_fetch_array($allClasses)){
     $start_date=$registros['cl_startDate'];
     $end_date=$registros['cl_endDate'];
     $start_year=substr($start_date, 6, 4);
     $end_year=substr($end_date, 6, 4);
     $start_month=substr($start_date, 3, 2);
     $end_month=substr($end_date, 3, 2);
     $start_day=substr($start_date, 0, 2);
     $end_day=substr($end_date, 0, 2);
     if(($start_year  <=  $year) && ($end_year  >=  $year) && ($start_month  <=  $month) && ($end_month  >=  $month) && ($start_day  <=  $day) && ($end_day  >=  $day)) {
            $identifiedClassId=$registros['cl_id'];
            $countIdentifiedClassId++;
     }
 }

相关内容

  • 没有找到相关文章

最新更新