{{tag>ar yii1}}

====== Конструции SELECT ======

===== findByPk =====

<code php>
$id = 25;     
$result = Apartment::model()->findByPk($id);  
echo $result->title_ru;  
</code>

===== findAllByPk =====

<code php>
$ids = array(25, 26, 27);     
$result = Apartment::model()->findAllByPk($ids);  
  
foreach ($result as $item) {  
    echo '<pre>';  
    print_r($item->title_ru);  
    echo '</pre>';  
}  
</code>

===== findByAttributes =====

Плохой пример применения
<code php>
$result = Apartment::model()->findByAttributes(array('title_ru' => 'Однокомнатная квартира на Новом Арбате'));  
              
echo $result->title_ru;  
echo '<br>'.$result->id;  
</code>

Хороший
<code php>
$result = User::model()->findByAttributes(array('name' => 'admin@mirocow.com')); 
</code>

Дело в том что findByAttributes равносильно =, а не LIKE

===== findAllByAttributes =====

<code php>
$result = Apartment::model()->findAllByAttributes(array('title_ru' => array('Однокомнатная квартира на Новом Арбате', 'дом на ул. Трубецкая')));  
          
foreach ($result as $item) {  
    echo '<pre>';  
    print_r($item->title_ru);  
    print_r('<br>'.$item->id);  
    echo '</pre>';  
} 
</code>

<code php>
$result = Apartment::model()->findAllByAttributes(
  array(
    'id' => array(19, 20), 
    'title_ru' => array('Однокомнатная квартира на Новом Арбате', 'дом на ул. Трубецкая')
  ));  
          
foreach ($result as $item) {  
    echo '<pre>';  
    print_r($item->title_ru);  
    print_r('<br>'.$item->id);  
    echo '</pre>';  
}  
</code>

===== find =====

<code php>
$numMax = 19;     
$result = Apartment::model()->find('id < :numMax', array(':numMax' => $numMax));  
  
echo $result->title_ru;  
echo '<br>'.$result->id;  
</code>

===== findAll =====

<code php>
$numMax = 20;     
$result = Apartment::model()->findAll('id < :numMax', array(':numMax' => $numMax));  
      
foreach ($result as $item) {  
    echo '<pre>';  
    print_r($item->title_ru);  
    print_r('<br>'.$item->id);  
    echo '</pre>';  
}
</code>

<code php>
$numMax = 20;     
$result = Apartment::model()->findAll("id < {$numMax}");  
      
foreach ($result as $item) {  
    echo '<pre>';  
    print_r($item->title_ru);  
    print_r('<br>'.$item->id);  
    echo '</pre>';  
}
</code>

<code php>
$result = Apartment::model()->findAll(array('order' => 'title_ru ASC'));  
</code>

===== findBySql =====

<code php>
$result = Apartment::model()->findBySql('SELECT id FROM {{apartment}} WHERE square = 60 AND title_ru = "квартира на ул. Авиамоторная"');      
echo $result->id;  
</code>

===== findAllBySql =====

<code php>
$result = Apartment::model()->findAllBySql('SELECT id, title_ru FROM {{apartment}} WHERE square <= 50 AND square >= 40');  
              
foreach ($result as $item) {  
    echo '<pre>';  
    print_r($item->title_ru);  
    print_r('<br>'.$item->id);  
    echo '</pre>';  
}  
</code>

===== countBySql =====

<code php>
$result = Apartment::model()->countBySql('SELECT COUNT(id) FROM {{apartment}} WHERE square <= 50 AND square >= 40');  
echo $result; 
</code>

===== count =====

<code php>
$result = Apartment::model()->count('id < 25');  
echo $result;  
</code>

или

<code php>
$result = Apartment::model()->count('id < :num', array(':num' => 25));  
echo $result;  
</code>

===== exists =====

<code php>
$result = Apartment::model()->exists('id < :num', array(':num' => 25));  
echo var_dump($result); 
</code>

или

<code php>
$result = Apartment::model()->exists('id < :num', array(':num' => 1));  
echo var_dump($result);  
</code>

===== UpdateByPK =====

<code php>
$ids = array(18, 19, 20);     
$result = Apartment::model()->updateByPk($ids, array('title_ru' => 'Новый заголовок'));   
</code>

===== updateAll =====

<code php>
$result = Apartment::model()->updateAll(array('title_ru' => 'Новый заголовок'), 'title_ru = :title', array(':title' => 'квартира на ул. Авиамоторная'));
</code>

===== deleteByPk =====

<code php>
$result = Apartment::model()->deleteByPk(18);  
</code>

===== deleteAll =====

<code php>
$result = Apartment::model()->deleteAll('title_ru = :title', array(':title' => 'дом на ул. Трубецкая'));  
</code>