prepare($query); $stmt->bind_param("i", $substance_id); $stmt->execute(); $result = $stmt->get_result(); $substance = $result->fetch_assoc(); // Query per ottenere i valori della sostanza $queryValues = " SELECT rp.result_Value, rp.result_UnitofMeasure, r.reportDateIn, r.reportsNumberLab, p.products_refnumber, p.products_description, r.idreports FROM result_project rp LEFT JOIN compundsvocabulary cv ON rp.result_AnalytsName = cv.idcompoundsvocabulary LEFT JOIN reports r ON rp.idreports = r.idreports LEFT JOIN products p ON r.idproducts = p.idproducts WHERE cv.idcompoundsvocabulary = ? AND (rp.result_Value REGEXP '^[0-9]+([,][0-9]+)?$' OR rp.result_Value LIKE '<%') ORDER BY r.reportDateIn ASC; "; $stmtValues = $conn->prepare($queryValues); $stmtValues->bind_param("i", $substance_id); $stmtValues->execute(); $resultValues = $stmtValues->get_result(); $values = []; while ($row = $resultValues->fetch_assoc()) { $values[] = $row; } // Query per calcolare la percentuale di valori detected $queryDetectablePercentage = " SELECT ROUND( (COUNT(CASE WHEN rp.result_Value NOT LIKE '<%' THEN 1 END) / COUNT(*)) * 100, 2 ) AS detectable_percentage FROM result_project rp LEFT JOIN compundsvocabulary cv ON rp.result_AnalytsName = cv.idcompoundsvocabulary WHERE cv.idcompoundsvocabulary = ? AND cv.component_type = 'CH'; "; $stmtDetectablePercentage = $conn->prepare($queryDetectablePercentage); $stmtDetectablePercentage->bind_param("i", $substance_id); $stmtDetectablePercentage->execute(); $resultDetectablePercentage = $stmtDetectablePercentage->get_result(); $detectableData = $resultDetectablePercentage->fetch_assoc(); $detectablePercentage = $detectableData['detectable_percentage'] ?? 0; // Determina la classe del badge in base alla percentuale $badgeClass = ''; if ($detectablePercentage < 3) { $badgeClass = 'bg-success'; // Verde } elseif ($detectablePercentage >= 3 && $detectablePercentage < 10) { $badgeClass = 'bg-info'; // Azzurro } elseif ($detectablePercentage >= 10 && $detectablePercentage < 30) { $badgeClass = 'bg-warning'; // Arancio } else { $badgeClass = 'bg-danger'; // Rosso } ?>

% Detected

Comprehensive analysis and details

ID: Last Updated:
Distribution of Values
Values Table
Date Report Number Product Ref Value Unit
' . htmlspecialchars($rawValue) . ''; } else { echo '' . htmlspecialchars($rawValue) . ''; } ?>