Функция newQuery() несколькими способами.
// новый запрос $query = $modx->newQuery('modResource'); // связь таблиц site_content и users $query->innerJoin('modUser', 'key', "key.id = modResource.createdby"); // выбираем название статьи и имя пользователя который публикует статью $query->select('modResource.pagetitle, key.username'); // Обратная сортировка по дате публикации $query->sortby('modResource.createdon', 'DESC'); // выбираем 10 записей $query->limit(10); // если запрос подготовлен и выполнен if ($query->prepare() && $query->stmt->execute()) { // так можно проверить sql запрос //echo $query->toSQL(); // получаем данные $result = $query->stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { echo $row['pagetitle'].' '.$row['username']; } <code><span class="pun">}</span></code>
Функция getCollection()
$query = $modx->newQuery('modResource'); $query->select('id, pagetitle, createdon'); $query->sortby('createdon', 'DESC'); $query->limit(10); $query->prepare(); // получаем коллекцию объектов $result = $modx->getCollection('modResource', $query); foreach ($result as $row) { // связь с таблицей users по алиасу CreatedBy $user = $row->getOne('CreatedBy'); // имя пользователя echo $user->get('username') ; // заголовок ресурса echo $row->get('pagetitle'); }
xPDOCriteria()
// пишем запрос $sql = "SELECT `pagetitle`, `username` FROM `modx_site_content` AS `modResource` JOIN `modx_users` `key` ON `key`.`id` = `modResource`.`createdby` ORDER BY `modResource`.`createdon` DESC LIMIT 10"; // получаем объект $query = new xPDOCriteria($modx, $sql); if ($query->prepare() && $query->stmt->execute()){ $res = $query->stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($res as $row){ echo $row['username']; echo $row['pagetitle']; } }
query()
$sql = "SELECT `pagetitle`, `username` FROM `modx_site_content` AS `modResource` JOIN `modx_users` `key` ON `key`.`id` = `modResource`.`createdby` ORDER BY `modResource`.`createdon` DESC LIMIT 10"; $query = $modx->query($sql); $res = $query->fetchAll(PDO::FETCH_ASSOC); foreach ($res as $row){ echo $row['username']; echo $row['pagetitle']; }
Комментарии ()