get_records_sql ()

get_records_sql ()

от Pavel Chervov -
Количество ответов: 3

Добрый день, если напрямую обращаться к базе таким запросом

SELECT c.id, c.fullname, m.name, cm.instance
FROM mdl_course c, mdl_modules m, mdl_course_modules cm
WHERE c.id = cm.course
AND m.id = cm.module
AND cm.course =68

то результат будет

idfullnamenameinstance
68 Дипломное проектирование (специальность 230106 ТО ... label 49
68 Дипломное проектирование (специальность 230106 ТО ... label 50
68 Дипломное проектирование (специальность 230106 ТО ... resource 234
68 Дипломное проектирование (специальность 230106 ТО ... resource 235
68 Дипломное проектирование (специальность 230106 ТО ... resource 236
68 Дипломное проектирование (специальность 230106 ТО ... resource 304
68 Дипломное проектирование (специальность 230106 ТО ... resource 1181
68 Дипломное проектирование (специальность 230106 ТО ... resource 2007
68 Дипломное проектирование (специальность 230106 ТО ... resource 2008
68 Дипломное проектирование (специальность 230106 ТО ... resource 2087
68 Дипломное проектирование (специальность 230106 ТО ... resource 2088
68 Дипломное проектирование (специальность 230106 ТО ... resource 3809
68 Дипломное проектирование (специальность 230106 ТО ... resource 3811
68 Дипломное проектирование (специальность 230106 ТО ... resource 3810
68 Дипломное проектирование (специальность 230106 ТО ... book 57

как получить эти данные используя функции Moodle 1.9 ?

get_records_sql возвращает обьект с данными только одной строки....

Array
(
    [68] => stdClass Object
        (
            [fullname] => Дипломное проектирование (специальность 230106 ТО СВТиКС)
            [name] => book
            [instance] => 57
            [id] => 68
        )

)


 

 

В ответ на Pavel Chervov

Re: get_records_sql ()

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Сначала удивился, потом нашёл решение вашей загадки. 

Из описания функции:

* @return array of objects indexed by first column

все строчки по очереди кидаются в массив, а индекс у всех один, поэтому в массиве остаётся тольк последняя запись. Поставьте в запросе первой строчкой cm.id