Перейти к содержанию

Рекомендуемые сообщения

Помогите разобраться

public function getCustomerGroupDescriptions($customer_group_id) {
          $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'");
      return $query;
    }

Я правильно понял, что значение аргумента getCustomerGroupDescriptions($customer_group_id) берется из запроса к БД, а именно из куска

...WHERE customer_group_id = '" . (int)$customer_group_id . "'

???

или аргумент $customer_group_id надо как-то по-другому определять заранее?

Изменено пользователем fofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Функция получает параметр $customer_group_id и подставляет его в запрос к БД
Запрос возвращает строки из таблицы, соответствующие условию. Эти строки функция возвращает в место вызова.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, shalan сказал:

 в место вызова.

т.е. значение из БД подставляется в getCustomerGroupDescriptions($customer_group_id) ?

Как задается условие параметра?

 

Изменено пользователем fofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в контроллере при вызове передается значение

 

$this->...->getCustomerGroupDescriptions($id);

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, Otvet сказал:

в контроллере при вызове передается значение

 

$this->...->getCustomerGroupDescriptions($id);

я правильно понял, что в модели значение аргумента берется из БД, которое передается в контроллере в место вызова?

Изменено пользователем fofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Аргумент это то, что передается в функцию извне. В данной функции аргумент используется в качестве условия для получение данных из базы. Аргумент не меняется внутри этой функции.
 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
34 минуты назад, shalan сказал:

Аргумент это то, что передается в функцию извне. В данной функции аргумент используется в качестве условия для получение данных из базы.
 

 

Если в БД в значения customer_group_id равны 1; 2; 3, то запрос вернет все строки, связанные с этими значениями? Например:

[rows] => Array
        (
            [0] => Array
                (
                    [customer_group_id] => 1
                    [name] => name1
                    [description] => description1
                   
                )

            [1] => Array
                (
                   [customer_group_id] => 2
                    [name] => name2
                    [description] => description2
                )

            [2] => Array
                (
                    [customer_group_id] => 3
                    [name] => name3
                    [description] => description3
                )

           

        )

 

34 минуты назад, shalan сказал:

Аргумент не меняется внутри этой функции.

не понятно. Приведите пример пожалуйста

 

При выводе из модели

public function getCustomerGroupDescriptions($customer_group_id) {
          $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'");
echo "<pre>"; print_r($query); echo "</pre>";      
return $query;
    }

возвращается пустой массив. Почему?

Изменено пользователем fofa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

запрос вернет строку соответствующую условию
добавьте вывод
 

echo "<pre>" . $customer_group_id . "</pre>";

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, shalan сказал:

запрос вернет строку соответствующую условию
добавьте вывод
 


echo "<pre>" . $customer_group_id . "</pre>";

 

ничего не возвращает.

 

2 часа назад, shalan сказал:

Аргумент это то, что передается в функцию извне.

А условие задается извне или изнутри?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, fofa сказал:

А условие задается извне или изнутри?

какое условие?

в метод, передается идентификатор группы.  достаем описание по идентификатору и возвращаем. все.  

у вас метод возвращает объект, может сразу вернуть массив? $query->rows

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

условие функции (обработка аргумента и возврат результата) в теле самой функции

аргумент - задается при вызове функции извне

 

http://php.net/manual/ru/functions.arguments.php

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, fanatic сказал:

какое условие?

 

Господин  @shalan сказал, что $customer_group_id в функции

public function getCustomerGroupDescriptions($customer_group_id) {
          $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'");
      return $query;
    }

выступает в качестве условия для получения данных из базы. Мне не понятно, как и где это условие задается

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, AlexDW сказал:

условие функции (обработка аргумента и возврат результата) в теле самой функции

аргумент - задается при вызове функции извне

 

http://php.net/manual/ru/functions.arguments.php

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, fofa сказал:

выступает в качестве условия для получения данных из базы. Мне не понятно, как и где это условие задается

WHERE customer_group_id = '" . (int)$customer_group_id . "'

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, fanatic сказал:

WHERE customer_group_id = '" . (int)$customer_group_id . "'

 

Если я правильно понял, то оно там не задается, а используется для выборки строк. Например: условие - "243" и запрос возвращает все строки, у которых customer_group_id = 243

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, fofa сказал:

Если я правильно понял, то оно там не задается, а используется для выборки строк

совершенно верно. да, используется в условии запроса(where).  это и имел в виду@shalan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.