Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Аргумент функции


Recommended Posts

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

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
Надіслати
Поділитися на інших сайтах


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
Надіслати
Поділитися на інших сайтах


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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.