Yii计算模型中的记录

时间:2014-04-09 12:50:31

标签: php sql yii

在我的网络应用程序中,我想打印特定条件的记录。但我得到的输出是0,尽管匹配条件有很多记录。 此代码位于另一个模型的视图中。 " $数据"属于那个模型

我实施的代码。

$temp=CHtml::encode($data->name);

        $find=ConsumerRequest::model()->findAllByAttributes(array('requested_vegetable'=>$temp));
        $count = count($find);
       echo $count;

我该如何解决这个问题?

4 个答案:

答案 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