【问题标题】:I want just users table rows in result我只想要结果中的用户表行
【发布时间】:2016-12-09 05:09:19
【问题描述】:

这张图片是我的 MySQL 表。

这些是我的代码。

$buyuser = CHtml::encode($_POST['buyuser']);
            $criteria = new CDbCriteria;
            $criteria->distinct = FALSE;
            $criteria->with = array('addresses'=>array('alias'=>'adres', 'together'=>true),'addresses.city'=>array('alias'=>'city', 'together'=>true));
            $criteria->addCondition('t.name LIKE "'.$buyuser.'%" OR t.name LIKE "% '.$buyuser.'%" OR t.lastname LIKE "'.$buyuser.'%" OR t.lastname LIKE "% '.$buyuser.'%" OR adres.store LIKE "'.$buyuser.'%" OR adres.store LIKE "% '.$buyuser.'%" OR city.name LIKE "'.$buyuser.'%" OR city.name LIKE "% '.$buyuser.'%"');
            $users = Users::model()->findAll($criteria);

它有效,但是当 city.name 或 lastname 或 store 为一个时,我还想查看重复记录。 我需要所有地址。

【问题讨论】:

标签: php mysql yii criteria


【解决方案1】:

我更改了 findAll 中的基表及其答案。

$buyuser = CHtml::encode($_POST['buyuser']);
        $criteria = new CDbCriteria;
        $criteria->distinct = FALSE;
        $criteria->with = array('user'=>array('together'=>true),'city'=>array('together'=>true));
        $criteria->addCondition('user.name LIKE "'.$buyuser.'%" OR user.name LIKE "% '.$buyuser.'%" OR user.lastname LIKE "'.$buyuser.'%" OR user.lastname LIKE "% '.$buyuser.'%" OR CONCAT(user.name," ",user.lastname) LIKE "'.$buyuser.'%" OR CONCAT(user.name," ",user.lastname) LIKE "% '.$buyuser.'%" OR t.store LIKE "'.$buyuser.'%" OR t.store LIKE "% '.$buyuser.'%" OR city.name LIKE "'.$buyuser.'%" OR city.name LIKE "% '.$buyuser.'%"');
        $addresses = Addresses::model()->findAll($criteria);

【讨论】:

  • 您需要所有地址或所有地址的所有用户?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 2022-09-29
  • 1970-01-01
  • 2022-12-15
  • 1970-01-01
相关资源
最近更新 更多