setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $clients = $pdo->query("SELECT clientCode FROM clients ORDER BY clientCode")->fetchAll(PDO::FETCH_COLUMN) ?: []; $questionnaireIds = $pdo->query("SELECT id FROM questionnaires")->fetchAll(PDO::FETCH_COLUMN) ?: []; $qidSet = array_fill_keys($questionnaireIds, true); $completed = []; $stmt = $pdo->query("SELECT clientCode, questionnaireId, isDone FROM completed_questionnaires"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $c = $row['clientCode'] ?? 'undefined'; $q = $row['questionnaireId'] ?? 'undefined'; $completed[$c][$q] = ((int)($row['isDone'] ?? 0)) ? true : false; } $answers = []; $stmt = $pdo->query("SELECT clientCode, questionId, answerValue FROM answers"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $c = $row['clientCode'] ?? 'undefined'; $q = $row['questionId'] ?? 'undefined'; $answers[$c][$q] = (string)($row['answerValue'] ?? ''); } // ---- HTML ---- echo ''; echo '
| '; foreach ($order as $id) echo ' | '.htmlspecialchars($id).' | '; echo '
|---|---|
| '; foreach ($order as $id) { $lbl = $labels[$id] ?? ''; echo ' | '.htmlspecialchars($lbl).' | '; } echo '
| '; foreach ($order as $id) { if ($id === 'client_code') { $val = $client; } elseif (isset($qidSet[$id]) && strpos($id, '-') === false) { $val = ($completed[$client][$id] ?? false) ? 'Done' : 'Not Done'; } else { $raw = $answers[$client][$id] ?? ''; $val = (strlen(trim($raw)) > 0) ? t_val($id, $raw, $vals) : 'None'; } echo ' | '.htmlspecialchars($val).' | '; } echo '