0) { $stmt = $pdo->prepare('SELECT * FROM water_records WHERE id = ? AND rand = ? LIMIT 1'); $stmt->execute([$recordId, $randId]); $row = $stmt->fetch(); } if ($row) { $type = $row['analysis_type'] ?? ''; $stmt = $pdo->prepare('SELECT * FROM water_specifications WHERE type = ? LIMIT 1'); $stmt->execute([$type]); $specs = $stmt->fetch() ?: []; } $h = fn($v) => htmlspecialchars((string) $v, ENT_QUOTES, 'UTF-8'); function waterBar(float $found, float $min, float $max): string { if ($max <= 0) return 'N/A'; $pct = ($max > $min) ? min(100, max(0, ($found - $min) / ($max - $min) * 100)) : 0; if ($found < $min) { return '
' . ''; } elseif ($found > $max) { return '' . '
'; } else { return '' . '
' . ''; } } ?> Water Analysis | Crop Monitor
Record not found or access denied.
Crop Monitor
Client Lab No
Sample ID Site ID
Analysis Type Date Sampled
ANALYSIS RESULTS

0 || $max > 0) ? number_format($min, 2) . '–' . number_format($max, 2) : '—'; $display = $unit ? $label . ' (' . $unit . ')' : $label; ?> 0 || $max > 0) ? number_format($min, 1) . '–' . number_format($max, 1) : '—'; ?> 0 || $max > 0) ? number_format($min, 2) . '–' . number_format($max, 2) : '—'; ?>
ELEMENT STATUS
Parameter Desired Found Deficit Ideal High
GENERAL PARAMETERS
0 ? number_format($found, 3) : '—' ?>
MAJOR ELEMENTS
() 0 ? number_format($found, 2) : '—' ?>
TRACE ELEMENTS
() 0 ? number_format($found, 3) : '—' ?>

Water analysis results should be interpreted in the context of intended use (irrigation, drinking, stock water).

Talk to your qualified consultant to make a plan for correction or maintenance of the found parameter levels.

Any recommendations provided by Cropmonitor are advice only. We are not paid consultants and are not covered to accept responsibility for any of our suggestions.