Hi,
I have a resource page with an html table to display data from 16 tables in the database. I tried passing the data to a chunk containing a HTML table, it works, but if no data is found on some of the tables in the database, the html table does not appear on the page.
What I want is;
1. if no data is in the database, I want to have a blank html table
2. if only two tables have data in the database, I want the html table to have two rows filled.
Snippet Code
<?php
$path = MODX_CORE_PATH . 'components/grades/';
$username = $modx->user->get('username');
$result = $modx->addPackage('grades',$path .
'model/','grade_');
if (! $result) {
return 'failed to add package';
} else {
$output = '<p>added Package</p>';
}
$query = $modx->newQuery('Results');
$query->innerJoin('Colleagues','Colleagues','Colleagues.username = Results.username' );
$query->innerJoin('Results3','Results3','Results3.username = Results.username' );
$query->innerJoin('Results4','Results4','Results4.username = Results.username' );
$query->innerJoin('Results5','Results5','Results5.username = Results.username' );
$query->innerJoin('Results6','Results6','Results6.username = Results.username' );
$query->innerJoin('Results7','Results7','Results7.username = Results.username' );
$query->innerJoin('Results8','Results8','Results8.username = Results.username' );
$query->innerJoin('Results9','Results9','Results9.username = Results.username' );
$query->innerJoin('Results10','Results10','Results10.username = Results.username' );
$query->innerJoin('Results11','Results11','Results11.username = Results.username' );
$query->innerJoin('Results12','Results12','Results12.username = Results.username' );
$query->innerJoin('Results13','Results13','Results13.username = Results.username' );
$query->innerJoin('Results14','Results14','Results14.username = Results.username' );
$query->innerJoin('Results15','Results15','Results15.username = Results.username' );
$query->innerJoin('Results16','Results16','Results16.username = Results.username' );
$query->where(array(
'Results.username'=> $username,
'Colleagues.username' =>$username,
'Results3.username' =>$username,
'Results4.username' =>$username,
'Results5.username' =>$username,
'Results6.username' =>$username,
'Results7.username' =>$username,
'Results8.username' =>$username,
'Results9.username' =>$username,
'Results10.username' =>$username,
'Results11.username' =>$username,
'Results12.username' =>$username,
'Results13.username' =>$username,
'Results14.username' =>$username,
'Results15.username' =>$username,
'Results16.username' =>$username
));
//$query->andCondition(array('Colleagues.username' =>$username));
$query->select(array('Results.*','Colleagues.*', 'Results3.*', 'Results4.*', 'Results5.*', 'Results6.*', 'Results7.*', 'Results8.*', 'Results9.*', 'Results10.*', 'Results11.*', 'Results12.*', 'Results13.*', 'Results14.*', 'Results15.*', 'Results16.*'));
$grades = $modx->getCollection('Results',$query);
$output .= '<p>Total: '. count($grades) . '</p>';
foreach($grades as $grade) {
$fields = $grade->toArray();
$output .= $modx->getChunk('ShowResults', $fields);
}
return $output;
html table chunk
<p class="Results">
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<h2>Questionnaire Results</h2>
<table style="width:100%">
<tr>
<th></th>
<th></th>
<th colspan="11">Round1</th>
<th></th>
<th colspan="10">Round2</th>
</tr>
<tr>
<th></th>
<th></th>
<th>Self</th>
<th colspan="10">Colleague Evaluation</th>
<th></th>
<th colspan="10">Colleague Evaluation</th>
</tr>
<tr>
<th></th>
<th></th>
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>F</th>
<th>G</th>
<th>H</th>
<th>Total</th>
<th>Average</th>
<th></th>
<th>J</th>
<th>K</th>
<th>L</th>
<th>M</th>
<th>N</th>
<th>O</th>
<th>P</th>
<th>Q</th>
<th>Total</th>
<th>Average</th>
</tr>
<tr>
<td>X1</td>
<td>How well do I establish positive working relationships with colleagues?</td>
<td>[[+SX1]]</td>
<td>[[+X1]]</td>
<td>[[+BX1]]</td>
<td>[[+CX1]]</td>
<td>[[+DX1]]</td>
<td>[[+EX1]]</td>
<td>[[+FX1]]</td>
<td>[[+GX1]]</td>
<td>[[+HX1]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JX1]]</td>
<td>[[+KX1]]</td>
<td>[[+LX1]]</td>
<td>[[+MX1]]</td>
<td>[[+NX1]]</td>
<td>[[+OX1]]</td>
<td>[[+PX1]]</td>
<td>[[+QX1]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>X2</td>
<td>How often do I use praise?</td>
<td>[[+SX2]]</td>
<td>[[+X2]]</td>
<td>[[+BX2]]</td>
<td>[[+CX2]]</td>
<td>[[+DX2]]</td>
<td>[[+EX2]]</td>
<td>[[+FX2]]</td>
<td>[[+GX2]]</td>
<td>[[+HX2]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JX2]]</td>
<td>[[+KX2]]</td>
<td>[[+LX2]]</td>
<td>[[+MX2]]</td>
<td>[[+NX2]]</td>
<td>[[+OX2]]</td>
<td>[[+PX2]]</td>
<td>[[+QX2]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>X3</td>
<td>How well do I communicate what I think and want?</td>
<td>[[+SX3]]</td>
<td>[[+X3]]</td>
<td>[[+BX3]]</td>
<td>[[+CX3]]</td>
<td>[[+DX3]]</td>
<td>[[+EX3]]</td>
<td>[[+FX3]]</td>
<td>[[+GX3]]</td>
<td>[[+HX3]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JX3]]</td>
<td>[[+KX3]]</td>
<td>[[+LX3]]</td>
<td>[[+MX3]]</td>
<td>[[+NX3]]</td>
<td>[[+OX3]]</td>
<td>[[+PX3]]</td>
<td>[[+QX3]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>X4</td>
<td>Am I open and honest?</td>
<td>[[+SX4]]</td>
<td>[[+X4]]</td>
<td>[[+BX4]]</td>
<td>[[+CX4]]</td>
<td>[[+DX4]]</td>
<td>[[+EX4]]</td>
<td>[[+FX4]]</td>
<td>[[+GX4]]</td>
<td>[[+HX4]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JX4]]</td>
<td>[[+KX4]]</td>
<td>[[+LX4]]</td>
<td>[[+MX4]]</td>
<td>[[+NX4]]</td>
<td>[[+OX4]]</td>
<td>[[+PX4]]</td>
<td>[[+QX4]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>X5</td>
<td>Grade me on my concern for colleagues</td>
<td>[[+SX5]]</td>
<td>[[+X5]]</td>
<td>[[+BX5]]</td>
<td>[[+CX5]]</td>
<td>[[+DX5]]</td>
<td>[[+EX5]]</td>
<td>[[+FX5]]</td>
<td>[[+GX5]]</td>
<td>[[+HX5]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JX5]]</td>
<td>[[+KX5]]</td>
<td>[[+LX5]]</td>
<td>[[+MX5]]</td>
<td>[[+NX5]]</td>
<td>[[+OX5]]</td>
<td>[[+PX5]]</td>
<td>[[+QX5]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>X6</td>
<td>Grade me on my concern for the quality of SystmOne and TPP</td>
<td>[[+SX6]]</td>
<td>[[+X6]]</td>
<td>[[+BX6]]</td>
<td>[[+CX6]]</td>
<td>[[+DX6]]</td>
<td>[[+EX6]]</td>
<td>[[+FX6]]</td>
<td>[[+GX6]]</td>
<td>[[+HX6]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JX6]]</td>
<td>[[+KX6]]</td>
<td>[[+LX6]]</td>
<td>[[+MX6]]</td>
<td>[[+NX6]]</td>
<td>[[+OX6]]</td>
<td>[[+PX6]]</td>
<td>[[+QX6]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>X7</td>
<td>Grade me on my personal attitude</td>
<td>[[+SX7]]</td>
<td>[[+X7]]</td>
<td>[[+BX7]]</td>
<td>[[+CX7]]</td>
<td>[[+DX7]]</td>
<td>[[+EX7]]</td>
<td>[[+FX7]]</td>
<td>[[+GX7]]</td>
<td>[[+HX7]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JX7]]</td>
<td>[[+KX7]]</td>
<td>[[+LX7]]</td>
<td>[[+MX7]]</td>
<td>[[+NX7]]</td>
<td>[[+OX7]]</td>
<td>[[+PX7]]</td>
<td>[[+QX7]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Y8</td>
<td>Grade me on how open I am to criticism</td>
<td>[[+SY8]]</td>
<td>[[+Y8]]</td>
<td>[[+BY8]]</td>
<td>[[+CY8]]</td>
<td>[[+DY8]]</td>
<td>[[+EY8]]</td>
<td>[[+FY8]]</td>
<td>[[+GY8]]</td>
<td>[[+HY8]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JY8]]</td>
<td>[[+KY8]]</td>
<td>[[+LY8]]</td>
<td>[[+MY8]]</td>
<td>[[+NY8]]</td>
<td>[[+OY8]]</td>
<td>[[+PY8]]</td>
<td>[[+QY8]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Y9</td>
<td>Do I speak up when things go wrong or when I have a solution to a problem?</td>
<td>[[+SY9]]</td>
<td>[[+Y9]]</td>
<td>[[+BY9]]</td>
<td>[[+CY9]]</td>
<td>[[+DY9]]</td>
<td>[[+EY9]]</td>
<td>[[+FY9]]</td>
<td>[[+GY9]]</td>
<td>[[+HY9]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JY9]]</td>
<td>[[+KY9]]</td>
<td>[[+LY9]]</td>
<td>[[+MY9]]</td>
<td>[[+NY9]]</td>
<td>[[+OY9]]</td>
<td>[[+PY9]]</td>
<td>[[+QY9]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Y10</td>
<td>Do I speak up in group situations?</td>
<td>[[+SY10]]</td>
<td>[[+Y10]]</td>
<td>[[+BY10]]</td>
<td>[[+CY10]]</td>
<td>[[+DY10]]</td>
<td>[[+EY10]]</td>
<td>[[+FY10]]</td>
<td>[[+GY10]]</td>
<td>[[+HY10]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JY10]]</td>
<td>[[+KY10]]</td>
<td>[[+LY10]]</td>
<td>[[+MY10]]</td>
<td>[[+NY10]]</td>
<td>[[+OY10]]</td>
<td>[[+PY10]]</td>
<td>[[+QY10]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Y11</td>
<td>Do I ask questions when I am uncertain?</td>
<td>[[+SY11]]</td>
<td>[[+Y11]]</td>
<td>[[+BY11]]</td>
<td>[[+CY11]]</td>
<td>[[+DY11]]</td>
<td>[[+EY11]]</td>
<td>[[+FY11]]</td>
<td>[[+GY11]]</td>
<td>[[+HY11]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JY11]]</td>
<td>[[+KY11]]</td>
<td>[[+LY11]]</td>
<td>[[+MY11]]</td>
<td>[[+NY11]]</td>
<td>[[+OY11]]</td>
<td>[[+PY11]]</td>
<td>[[+QY11]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Y12</td>
<td>Do I feedback enough?</td>
<td>[[+SY12]]</td>
<td>[[+Y12]]</td>
<td>[[+BY12]]</td>
<td>[[+CY12]]</td>
<td>[[+DY12]]</td>
<td>[[+EY12]]</td>
<td>[[+FY12]]</td>
<td>[[+GY12]]</td>
<td>[[+HY12]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JY12]]</td>
<td>[[+KY12]]</td>
<td>[[+LY12]]</td>
<td>[[+MY12]]</td>
<td>[[+NY12]]</td>
<td>[[+OY12]]</td>
<td>[[+PY12]]</td>
<td>[[+QY12]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Y13</td>
<td>Do I stand up to others?</td>
<td>[[+SY13]]</td>
<td>[[+Y13]]</td>
<td>[[+BY13]]</td>
<td>[[+CY13]]</td>
<td>[[+DY13]]</td>
<td>[[+EY13]]</td>
<td>[[+FY13]]</td>
<td>[[+GY13]]</td>
<td>[[+HY13]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JY13]]</td>
<td>[[+KY13]]</td>
<td>[[+LY13]]</td>
<td>[[+MY13]]</td>
<td>[[+NY13]]</td>
<td>[[+OY13]]</td>
<td>[[+PY13]]</td>
<td>[[+QY13]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Y14</td>
<td>Do I stay calm under pressure?</td>
<td>[[+SY14]]</td>
<td>[[+Y14]]</td>
<td>[[+BY14]]</td>
<td>[[+CY14]]</td>
<td>[[+DY14]]</td>
<td>[[+EY14]]</td>
<td>[[+FY14]]</td>
<td>[[+GY14]]</td>
<td>[[+HY14]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JY14]]</td>
<td>[[+KY14]]</td>
<td>[[+LY14]]</td>
<td>[[+MY14]]</td>
<td>[[+NY14]]</td>
<td>[[+OY14]]</td>
<td>[[+PY14]]</td>
<td>[[+QY14]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Y15</td>
<td>Am I assertive</td>
<td>[[+SY15]]</td>
<td>[[+Y15]]</td>
<td>[[+BY15]]</td>
<td>[[+CY15]]</td>
<td>[[+DY15]]</td>
<td>[[+EY15]]</td>
<td>[[+FY15]]</td>
<td>[[+GY15]]</td>
<td>[[+HY15]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JY15]]</td>
<td>[[+KY15]]</td>
<td>[[+LY15]]</td>
<td>[[+MY15]]</td>
<td>[[+NY15]]</td>
<td>[[+OY15]]</td>
<td>[[+PY15]]</td>
<td>[[+QY15]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Z16</td>
<td>Do I take on responsibility?</td>
<td>[[+SZ16]]</td>
<td>[[+Z16]]</td>
<td>[[+BZ16]]</td>
<td>[[+CZ16]]</td>
<td>[[+DZ16]]</td>
<td>[[+EZ16]]</td>
<td>[[+FZ16]]</td>
<td>[[+GZ16]]</td>
<td>[[+HZ16]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JZ16]]</td>
<td>[[+KZ16]]</td>
<td>[[+LZ16]]</td>
<td>[[+MZ16]]</td>
<td>[[+NZ16]]</td>
<td>[[+OZ16]]</td>
<td>[[+PZ16]]</td>
<td>[[+QZ16]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Z17</td>
<td>Am I willing to take on new challenges?</td>
<td>[[+SZ17]]</td>
<td>[[+Z17]]</td>
<td>[[+BZ17]]</td>
<td>[[+CZ17]]</td>
<td>[[+DZ17]]</td>
<td>[[+EZ17]]</td>
<td>[[+FZ17]]</td>
<td>[[+GZ17]]</td>
<td>[[+HZ17]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JZ17]]</td>
<td>[[+KZ17]]</td>
<td>[[+LZ17]]</td>
<td>[[+MZ17]]</td>
<td>[[+NZ17]]</td>
<td>[[+OZ17]]</td>
<td>[[+PZ17]]</td>
<td>[[+QZ17]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Z18</td>
<td>Do I demonstrate a high level of commitment to the quality of my work and my pursuit of excellence?</td>
<td>[[+SZ18]]</td>
<td>[[+Z18]]</td>
<td>[[+BZ18]]</td>
<td>[[+CZ18]]</td>
<td>[[+DZ18]]</td>
<td>[[+EZ18]]</td>
<td>[[+FZ18]]</td>
<td>[[+GZ18]]</td>
<td>[[+HZ18]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JZ18]]</td>
<td>[[+KZ18]]</td>
<td>[[+LZ18]]</td>
<td>[[+MZ18]]</td>
<td>[[+NZ18]]</td>
<td>[[+OZ18]]</td>
<td>[[+PZ18]]</td>
<td>[[+QZ18]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Z19</td>
<td>Grade me on my ability to conduct myself professionally</td>
<td>[[+SZ19]]</td>
<td>[[+Z19]]</td>
<td>[[+BZ19]]</td>
<td>[[+CZ19]]</td>
<td>[[+DZ19]]</td>
<td>[[+EZ19]]</td>
<td>[[+FZ19]]</td>
<td>[[+GZ19]]</td>
<td>[[+HZ19]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JZ19]]</td>
<td>[[+KZ19]]</td>
<td>[[+LZ19]]</td>
<td>[[+MZ19]]</td>
<td>[[+NZ19]]</td>
<td>[[+OZ19]]</td>
<td>[[+PZ19]]</td>
<td>[[+QZ19]]</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Z20</td>
<td>Grade me on my effectiveness and ability to get things done</td>
<td>[[+SZ20]]</td>
<td>[[+Z20]]</td>
<td>[[+BZ20]]</td>
<td>[[+CZ20]]</td>
<td>[[+DZ20]]</td>
<td>[[+EZ20]]</td>
<td>[[+FZ20]]</td>
<td>[[+GZ20]]</td>
<td>[[+HZ20]]</td>
<td></td>
<td></td>
<td></td>
<td>[[+JZ20]]</td>
<td>[[+KZ20]]</td>
<td>[[+LZ20]]</td>
<td>[[+MZ20]]</td>
<td>[[+NZ20]]</td>
<td>[[+OZ20]]</td>
<td>[[+PZ20]]</td>
<td>[[+QZ20]]</td>
<td></td>
<td></td>
</tr>
</table>
</body>
</html>
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Self', 'Others'],
['X1', [[+SX1]], [[+X1]]],
['X2', [[+SX2]], [[+X2]]],
['X3', [[+SX3]], [[+X3]]],
['X4', [[+SX4]], [[+X4]]],
['X5', [[+SX5]], [[+X5]]],
['X6', [[+SX6]], [[+X6]]],
['X7', [[+SX7]], [[+X7]]],
['Y8', [[+SY8]], [[+Y8]]],
['Y9', [[+SY9]], [[+Y9]]],
['Y10', [[+SY10]], [[+Y10]]],
['Y11', [[+SY11]], [[+Y11]]],
['Y12', [[+SY12]], [[+Y12]]],
['Y13', [[+SY13]], [[+Y13]]],
['Y14', [[+SY14]], [[+Y14]]]
]);
var options = {
title: 'Grade'
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="chart_div" style="width: 1000px; height: 500px;"></div>
</body>
</html>
</p>