Have a table that uses values as keys on a row by row basis. The last column of the table should contain values not as keys, but as the values themselves. I could put this column before the columns with the values as keys, but it would be a sloppy-looking table.
if ($myquery = $mysqli->query ($sqlSelect)) {
$result = array();
while($row = mysqli_fetch_assoc($myquery)){
$tmp = array();
foreach (array('device1', 'device2', 'device3', 'device4', 'device5') as $key) {
if (!isset($tmp[$row[$key]])) $tmp[$row[$key]] = array();
$tmp[$row[$key]][] = $key;
}
$result[$row['title'] . "</td><td>" . $row['title_code']] = $tmp;
}
$max = 0;
foreach ($result as $data => $inputs) {
$max = max($max, count($inputs));
}
foreach ($result as $data => $inputs) {
print('<tr><td>' . $data . '</td>');
foreach ($inputs as $input => $devices) {
print('<td><strong>' . $input . ':</strong><br/>' . implode('<br/>', $devices) . '</td>');
}
// the following line makes blank cells to fill dead space
for ($i = 0; $i < $max - count($inputs); ++$i) {
print('<td></td>');
}
print('<td>' . $row['notes'] . '</td></tr>');
}
}
How do I get the values ignorantly-noted as $row['notes']
to display the values for the field after the columns that use values as keys?
The resulting table should look like this:
title title_code header1 header2 header3 Notes
Title1 Code1 inputA: inputB: data
Device1 Device3
Title2 Code2 inputA: inputB: inputC: data
Device1 Device2 Device3
Title3 Code3 inputB: data
Device1
For more on what this table looks like, see PHP print SQL field names as array with corresponding values showing once per row