MODx Получать данные из базы данных и сортировать в таблицу

0

Я пытаюсь настроить таблицу с оценками из базы данных MODX, эти данные были введены через tv.variables в панели администратора MODX.

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

SELECT sc.pagetitle, cv.value, t.name
FROM pphc_site_tmplvar_contentvalues cv, pphc_site_content sc, pphc_site_tmplvars t
WHERE sc.id = cv.contentid
AND cv.tmplvarid = t.id
ORDER BY cv.value * 1 DESC

Мой SQL получает имя команды, диапазон баллов в команде (игры, победы, потери, ничьи, общие очки), и если они выиграли/проиграли/нарисовали.

Ниже приведен снимок экрана о том, что мне нужно (с SQL, который я могу получить в данный момент)

Изображение 174551

Мой код на данный момент для работы с циклом SQL/:

//$output = $x; //get draws, losses, played, points and wins
$id = $x; //id of current page

function sort_by_value($a, $b) {
    return $b["value"] - $a["value"];
}

$sql = "SELECT sc.pagetitle, cv.value, t.name
FROM pphc_site_tmplvar_contentvalues cv, pphc_site_content sc, pphc_site_tmplvars t
WHERE sc.id = cv.contentid
AND cv.tmplvarid = t.id
AND sc.id = $id
ORDER BY cv.value * 1 DESC";

$result = $modx->query($sql)->fetchAll();

usort($result, "sort_by_value");
//print_r($result);die();
$html = '';

foreach ($result as $row) {
    $html .= ''. $row['value'] .'<br>';
}
return $html;

На данный момент весь этот код извлекает результаты каждой команды - Отлично!

Я не могу понять, как выложить данные в виде таблицы. И включать имена команд

Теги:
loops
modx
result

1 ответ

0

Вернитесь к своему SQL и перепишите запрос так, чтобы вы получили следующие результаты:

pagetitle | wins | losses | played | draws | points 
Bath HC   |  5   |   4    |   2    |   5   |  234  

то вы сможете:

foreach ($result as $row) {

    $html.= $modx->getChunk($rowTpl,$row);
}

return $html;

где $ rowTpl - это кусок, который вы определили в modx ~ что-то вроде:

<tr>
     <td>[[+pagetitle]]</td>
     <td>[[+wins]]</td>
     <td>[[+losses]]</td>
     <td>[[+played]]</td>
     <td>[[+draws]]</td>
     <td>[[+points]]</td>
</tr>

Это просто вопрос получения запроса, возвращающего данные, отформатированные более полезным способом.

  • 0
    Проблема в том, что значение «оценки» базы данных находится в одном столбце «Значения». Это больше, 5,4,2,5,234 и т. Д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню