在我的网络应用程序中,我想打印特定条件的记录。但我得到的输出是0,尽管匹配条件有很多记录。 此代码位于另一个模型的视图中。 " $数据"属于那个模型
我实施的代码。
$temp=CHtml::encode($data->name);
$find=ConsumerRequest::model()->findAllByAttributes(array('requested_vegetable'=>$temp));
$count = count($find);
echo $count;
我该如何解决这个问题?
答案 0 :(得分:1)
我不会使用findAll()
函数,因为这会拉动每一行的所有数据。您只需使用count()
或countByAttributes()
功能即可。我猜你的问题可能就在这一行:
$temp=CHtml::encode($data->name);
您很可能不会将其存储在HTML编码的数据库中。试着这样做:
$count = ConsumerRequest::model()->countByAttributes(array('requested_vegetable'=>$data->name));
答案 1 :(得分:1)
尝试在类语法后立即在模型上添加public $count
。并使用CDbCriteria进行客户查询。
答案 2 :(得分:0)
您可以尝试以下方法:
$temp=CHtml::encode($data->name);
$count = ConsumerRequest::model()->findAll(array("condition"=>"requested_vegetable = '$temp'"));
$count = count($find);
echo $count;
OR
$temp=CHtml::encode($data->name);
$Criteria = new CDbCriteria();
$Criteria->condition = "requested_vegetable = '$temp'";
$count = ConsumerRequest::model()->findAll($Criteria);
$count = count($find);
echo $count;
答案 3 :(得分:0)
你也可以这样做:$query='SELECT COUNT(id.tbl) FROM tbl';
CMIIW