prepare("SELECT COUNT(*) FROM `$table` WHERE modx_user_id = ? AND status = ?"); $stmt->execute([$userId, $status]); return (int) $stmt->fetchColumn(); } catch (\PDOException $e) { error_log("countRecords error on $table: " . $e->getMessage()); return 0; } } $counts = [ 'soil' => countRecords($pdo, 'soil_records', $userId, 0), 'plant' => countRecords($pdo, 'plant_records', $userId, 0), 'water' => countRecords($pdo, 'water_records', $userId, 0), 'animal' => countRecords($pdo, 'animal_records', $userId, 0), 'archived'=> countRecords($pdo, 'soil_records', $userId, 2), 'deleted' => countRecords($pdo, 'soil_records', $userId, 3), ]; function fetchHistory(\PDO $pdo, string $table, int $userId, string $select = 'id, rand, lab_no, sample_id, site_id, crop_type, date_sampled'): array { try { $stmt = $pdo->prepare( "SELECT {$select} FROM `{$table}` WHERE modx_user_id = ? AND status = 0 ORDER BY id DESC LIMIT 100" ); $stmt->execute([$userId]); return $stmt->fetchAll(); } catch (\PDOException $e) { error_log("fetchHistory error on $table: " . $e->getMessage()); return []; } } $soilRows = fetchHistory($pdo, 'soil_records', $userId); $plantRows = fetchHistory($pdo, 'plant_records', $userId); $waterRows = fetchHistory($pdo, 'water_records', $userId, 'id, rand, lab_no, sample_id, site_id, date_sampled'); $animalRows = fetchHistory($pdo, 'animal_records', $userId, "id, rand, lab_no, sample_id, '' AS site_id, date_sampled"); $h = fn($v) => htmlspecialchars((string) $v, ENT_QUOTES, 'UTF-8'); include __DIR__ . '/../layouts/header.php'; include __DIR__ . '/../layouts/navbar.php'; ?>

Soil Analysis Records
Lab NoSample IDSite ID CropDate SampledActions
No records found.
View
Plant Analysis Records
Lab NoSample IDSite ID CropDate SampledActions
No records found.
View
Water Analysis Records
Lab NoSample IDSite ID Date SampledActions
No records found.
View
Animal Dietary Balance Records
Lab NoSample IDSite ID Date SampledActions
No records found.
View
Compost Test Records

Compost records pending migration.