我有一个查询选择一组匹配的元素,然后一个If条件ckecking这些匹配元素中的一个(或多个)是否有效,这取决于它们在几个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
上应用哪个查询作为此查询({ {1}})在应用If。
如何获得与If条件匹配的元素总数?
答案 0 :(得分:0)
以下是应该使用的代码:未经测试。它将查询返回的行数设置为$ 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++;
}
}