Закрыть
Скидки в Webasyst 25–29 ноября 2021

Запрос к базе данных

racheev

$country = $this->getByField('iso3letter' , array('rus', 'ukr'));
$country = $this->query("SELECT * FROM wa_country WHERE iso3letter IN ('rus', 'ukr')")->fetchAll();

Второй вариант работает первый нет. Первый вариант взят в документации.. Сделано в модели:

class countryModel extends waModel {
protected $table = 'wa_country';
function loadCountry() {
//$country = $this->getByField('iso3letter' , array('rus', 'ukr'));
$country = $this->query("SELECT * FROM wa_country WHERE iso3letter IN ('rus', 'ukr')")->fetchAll();
return $country;
}
}

Или я что-то не правильно делаю?

8 марта 2016
  • Алексей Webasyst 8 марта 2016 13:10

    Вот этот пример работает:

    $model = new waCountryModel();
    $data = $model->getByField('iso3letter' , array('rus', 'ukr'));
    wa_print_r($data);
  • Евгений Леман 8 марта 2016 13:34
    wa_print_r

    В чем отличие от обычного? А можно получить весь список плюшек? Знаю только про wa_dump/wa_dumpc. И те не с документации.

  • racheev 8 марта 2016 13:38

    Алексей, вы внимательно прочитайте уже. Мой пример не работает в модели!

  • Syrnik.com 8 марта 2016 13:41

    список плюшек /wa-system/helper/misc.php :)

    p.s. wa_print_r -- синоним для wa_dump

  • Алексей Webasyst 8 марта 2016 14:38

    По вашему же примеру все корректно и работают оба варианта.

    Country.model.php:
    <?php
    class countryModel extends waModel {
        protected $table = 'wa_country';
        function loadCountry() {
            $country = $this->getByField('iso3letter' , array('rus', 'ukr'),true);
            //$country = $this->query("SELECT * FROM wa_country WHERE iso3letter IN ('rus', 'ukr')")->fetchAll();
            return $country;
        }
    }

    Посмотрите что есть разница сколько строк отдаётся при getByField и fetchAll, поэтому стоит добавить 3-й параметр.

  • racheev 8 марта 2016 14:41

    // Если необходимо провести отбор по нескольким возможным значениям одного поля,

    // то вместо одной переменной задается массив, в этом случае при построении запроса
    // будет использоваться оператор IN

    $model->getByField('name' , array($name1, $name2));

    Извините, не увидел здесь третий параметр. Можно конечно было догадаться... Но.....



Чтобы добавить комментарий, зарегистрируйтесь или войдите