[75.0, 11.4], 31 => [74.0, 11.2], 32 => [73.0, 11.0], 33 => [72.0, 10.8], 34 => [71.0, 10.6], 35 => [70.0, 10.4], 36 => [69.0, 10.2], 37 => [68.0, 10.0], 38 => [67.0, 9.8], 39 => [66.0, 9.6], 40 => [65.0, 9.4], 41 => [63.0, 9.2], 42 => [61.0, 9.0], 43 => [59.0, 8.8], 44 => [57.0, 8.6], 45 => [55.0, 8.4], 46 => [53.0, 8.2], 47 => [51.0, 8.0], 48 => [49.0, 7.8], 49 => [47.0, 7.6], 50 => [45.0, 7.4], 51 => [42.0, 7.2], 52 => [39.0, 7.0], 53 => [36.0, 6.8], 54 => [33.0, 6.6], 55 => [30.0, 6.4], 56 => [27.0, 6.2], 57 => [24.0, 6.0], 58 => [21.0, 5.8], 59 => [18.0, 5.6], 60 => [15.0, 5.4], 61 => [13.5, 5.3], 62 => [12.0, 5.2], 63 => [10.5, 5.1], 64 => [9.0, 5.0], 65 => [7.5, 4.9], 66 => [6.0, 4.8], 67 => [4.5, 4.7], 68 => [3.0, 4.6], 69 => [1.5, 4.5], 70 => [0.0, 4.4], 71 => [0.0, 4.3], 72 => [0.0, 4.2], 73 => [0.0, 4.1], 74 => [0.0, 4.0], 75 => [0.0, 3.9], 76 => [0.0, 3.8], 77 => [0.0, 3.7], 78 => [0.0, 3.6], 79 => [0.0, 3.5], 80 => [0.0, 3.4], 81 => [0.0, 3.3], 82 => [0.0, 3.2], 83 => [0.0, 3.1], 84 => [0.0, 3.0], 85 => [0.0, 2.9], 86 => [0.0, 2.8], 87 => [0.0, 2.7], 88 => [0.0, 2.6], 89 => [0.0, 2.5], 90 => [0.0, 2.4], 91 => [0.0, 2.3], 92 => [0.0, 2.2], 93 => [0.0, 2.1], 94 => [0.0, 2.0], 95 => [0.0, 1.9], 96 => [0.0, 1.8], 97 => [0.0, 1.7], 98 => [0.0, 1.6], 99 => [0.0, 1.5], 100 => [0.0, 1.4], ); /* ********* START ********* */ /* ********* ADD BASE SATURATION CALCULATION HERE ********* */ // Calculating hydrogen and otherbases $ph = $ph_h2o; // $ph_h2o from above $aluminium = $al_mehlick3; // round the ph value to single decimal point $ph_lookup = round($ph, 2); if ($errorLog = "1") { error_log(print_r("\nph_lookup: " . $ph_lookup . "\nph: " . $ph, true ), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); } // lookup Hydrogen and Other Bases $hydrogen = $phrange[($ph_lookup * 10)][0]; $otherbases = $phrange[($ph_lookup * 10)][1]; $h_rec = round($hydrogen, 2); // recommended level added to DB $ob_rec = round($otherbases, 2); // recommended level added to DB if ($errorLog = "1") { error_log(print_r("\nHydrogen: " . $hydrogen . "\nOther Bases: " . $otherbases, true), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); } if ( $aluminium < 0 ) { $otherbases = 0; } $obresult = 0; // obresult == Other Bases Result $hresult = 0; // hresult == Hydrogen Result // IF ******************************************************************************** if ( $otherbases > 0 ) { while ( (($obresult * 100) / ($cec + $obresult + $hresult) ) <= $otherbases ) { $obresult += 0.001; $tempNo = $obresult; $tempNo1 = $otherbases; $tempNo2 = $hydrogen; // CAUTION: storing value in Calc:E16 $hresult = ($tempNo * $tempNo2) / $tempNo1; } $obresult -= 0.001; if ( $hresult != 0 ){ $hresult -= 0.001; } } else { while( (($hresult * 100) / $tec) <= $hydrogen ) { $hresultl += 0.001; } $hresult -= 0.001; } if ($errorLog = "1") { error_log(print_r("\nhresult: " . $hresult . "\nobresult: " . $obresult, true), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); } // END If ******************************************************************************** // Calculating Ca Mg K Na levels based on temp // *** I think that the tecTemp needs to be a sum of $tec and $hresult and $obresult *** // *** As far as I can see on the spreadsheet the TEC in CALC:B16 is "CEC + obresult + CALC:E16" $tecTemp = $cec + $obresult + $hresult; $cecTemp = $cec; $tec = round($tecTemp, 2); $cec = round($cec, 2); if ($errorLog = "1") { error_log(print_r("\ntecTemp: " . $tecTemp . "\ncec: " . $cec . "\ntec: " . $tec, true), 3, "/home/cropmonitor/public_html/site/soilformSubmit-errors.log"); } // CAUTION: for $tecTemp values below 1 and above 100000 this will not work if ( ( 1.0 < $tec ) && ( 3.0 >= $tec ) ) { $cabs = $CABS = 0; $cabsmax = $CABSMAX = 60.00; $mgbs = $MGBS = 0; $mgbsmax = $MGBSMAX = 20.00; $kbs = $KBS = 5.00; $kbsmax = $KBSMAX = 7.00; $nabs = $NABS = 0.50; $nabsmax = $NABSMAX = 1.50; } elseif ( ( 3.0 < $tec ) && ( 5.0 >= $tec ) ) { $cabs = $CABS = 0; $cabsmax = $CABSMAX = 62.00; $mgbs = $MGBS = 0; $mgbsmax = $MGBSMAX = 18.00; $kbs = $KBS = 5.00; $kbsmax = $KBSMAX = 7.00; $nabs = $NABS = 0.50; $nabsmax = $NABSMAX = 1.50; } elseif ( ( 5.0 < $tec ) && ( 7.0 >= $tec ) ) { $cabs = $CABS = 0; $cabsmax = $CABSMAX = 64.00; $mgbs = $MGBS = 0; $mgbsmax = $MGBSMAX = 16.00; $kbs = $KBS = 4.00; $kbsmax = $KBSMAX = 7.00; $nabs = $NABS = 0.50; $nabsmax = $NABSMAX = 1.50; } elseif ( ( 7.0 < $tec ) && ( 9.0 >= $tec ) ) { $cabs = $CABS = 0; $cabsmax = $CABSMAX = 65.00; $mgbs = $MGBS = 0; $mgbsmax = $MGBSMAX = 15.00; $kbs = $KBS = 4.00; $kbsmax = $KBSMAX = 7.00; $nabs = $NABS = 0.50; $nabsmax = $NABSMAX = 1.50; } elseif ( ( 9.0 < $tec ) && ( 11.0 >= $tec ) ) { $cabs = $CABS = 0; $cabsmax = $CABSMAX = 67.00; $mgbs = $MGBS = 0; $mgbsmax = $MGBSMAX = 13.00; $kbs = $KBS = 4.00; $kbsmax = $KBSMAX = 7.00; $nabs = $NABS = 0.50; $nabsmax = $NABSMAX = 1.50; } elseif ( ( 11.0 < $tec ) && ( 30.0 >= $tec ) ) { $cabs = $CABS = 0; $cabsmax = $CABSMAX = 68.00; $mgbs = $MGBS = 0; $mgbsmax = $MGBSMAX = 12.00; $kbs = $KBS = 4.00; $kbsmax = $KBSMAX = 7.00; $nabs = $NABS = 0.50; $nabsmax = $NABSMAX = 1.50; } elseif ( ( 30.0 < $tec ) && ( 10000.0 >= $tec ) ) { $cabs = $CABS = 0; $cabsmax = $CABSMAX = 70.00; $mgbs = $MGBS = 0; $mgbsmax = $MGBSMAX = 10.00; $kbs = $KBS = 3.00; $kbsmax = $KBSMAX = 6.00; $nabs = $NABS = 0.50; $nabsmax = $NABSMAX = 1.50; } // *** CALCULATED TEC % AND PPM MIN / MAX LEVELS *** $cabs_min = $cabs; $ca_ppm_min = ( $tec * $cabs_min * 2 ); $cabs_max = $cabsmax; $ca_ppm_max = ( $tec * $cabs_max * 2); $mgbs_min = $mgbs; $mg_ppm_min = ( $tec * $mgbs_min * 1.2 ); $mgbs_max = $mgbsmax; $mg_ppm_max = ( $tec * $mgbs_max * 1.2 ); $kbs_min = $kbs; $k_ppm_min = ( $tec * $kbs_min * 3.9 ); $kbs_max = $kbsmax; $k_ppm_max = ( $tec * $kbs_max * 3.9 ); $nabs_min = $nabs; $na_ppm_min = ( $tec * $nabs_min * 2.3 ); $nabs_max = $nabsmax; $na_ppm_max = ( $tec * $nabs_max * 2.3 ); $albs_min = "0"; $al_ppm_min = ( $tec * $albs_min * 0.9 ); $albs_max = "0.5"; $al_ppm_max = ( $tec * $albs_max * 0.9 ); // *** CALCULATED TEC LEVELS *** $cabs_tec = ( $ca_mehlick3 / $tec ) * 100; $cabs_tec = round($cabs_tec, 2); $mgbs_tec = ( $mg_mehlick3 / $tec ) * 100; $mgbs_tec = round($mgbs_tec, 2); $kbs_tec = ( $k_mehlick3 / $tec ) * 100; $kbs_tec = round($kbs_tec, 2); $nabs_tec = ( $na_mehlick3 / $tec ) * 100; $nabs_tec = round($nabs_tec, 2); $albs_tec = ( $al_mehlick3 / $tec ) * 100; $albs_tec = round($albs_tec, 2); // *** CALCULATED PPM FROM MEQ *** $BS_ca_ppm = $ca_mehlick3 * 200; $BS_mg_ppm = $mg_mehlick3 * 120; $BS_k_ppm = $k_mehlick3 * 390; $BS_na_ppm = $na_mehlick3 * 230; $BS_al_ppm = $al_mehlick3 * 90; /* ********* ADD BASE SATURATION CALCULATION HERE ********* */ /* ********* END ********* */ // Check connection if (mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql = mysqli_query($con, "INSERT into `soil_records` ( client_records_id, modx_user_id, date, email, client_name, site_address, state_postcode, analysis_type, lab_no, batch_no, sample_id, site_id, crop_type, soil_type, date_sampled, tec, cec, texture, gravel, colour, NO3_N, NH3_N, p_mehlick, p_bray2, p_morgan, k_morgan, ca_morgan, mg_morgan, na_morgan, ch_h2o, ocarbon, omatter, fe, ec, ph_cacl2, ph_h2o, paramag, s_morgan, b_cacl2, mn_dtpa, zn_dtpa, fe_dtpa, cu_dtpa, al, sl_cacl2, m_dtpa, co_dtpa, se, ca_mehlick3, BS_ca_ppm, mg_mehlick3, BS_mg_ppm, k_mehlick3, BS_k_ppm, na_mehlick3, BS_na_ppm, al_mehlick3, BS_al_ppm, BS_ca2, BS_mg2, BS_k, BS_na, BS_al3, BS_ob, BS_h, cabs_min, ca_ppm_min, cabs_max, ca_ppm_max, mgbs_min, mg_ppm_min, mgbs_max, mg_ppm_max, kbs_min, k_ppm_min, kbs_max, k_ppm_max, nabs_min, na_ppm_min, nabs_max, na_ppm_max, albs_min, al_ppm_min, albs_max, al_ppm_max, ob_rec, h_rec, ca_mg_ratio, rand ) VALUES ( '{$client_id}', '{$modx_id}', '{$date}', '{$email}', '{$client_name}', '{$site_address}', '{$state_postcode}', '{$analysis_type}', '{$lab_no}', '{$batch_no}', '{$sample_id}', '{$site_id}', '{$crop_type}', '{$soil_type}', '{$date_sampled}', '{$tec}', '{$cec}', IF('{$texture}'='',NULL,'{$texture}'), IF('{$gravel}'='',NULL,'{$gravel}'), IF('{$colour}'='',NULL,'{$colour}'), '{$NO3_N}', '{$NH3_N}', '{$p_mehlick}', '{$p_bray2}', '{$p_morgan}', '{$k_morgan}', '{$ca_morgan}', '{$mg_morgan}', '{$na_morgan}', '{$ch_h2o}', '{$ocarbon}', '{$omatter}', '{$fe}', '{$ec}', '{$ph_cacl2}', '{$ph_h2o}', IF('{$paramag}'='',NULL,'{$paramag}'), '{$s_morgan}', '{$b_cacl2}', '{$mn_dtpa}', '{$zn_dtpa}', '{$fe_dtpa}', '{$cu_dtpa}', '{$al}', '{$sl_cacl2}', '{$m_dtpa}', '{$co_dtpa}', '{$se}', '{$ca_mehlick3}', '{$BS_ca_ppm}', '{$mg_mehlick3}', '{$BS_mg_ppm}', '{$k_mehlick3}', '{$BS_k_ppm}', '{$na_mehlick3}', '{$BS_na_ppm}', '{$al_mehlick3}', '{$BS_al_ppm}', '{$cabs_tec}', '{$mgbs_tec}', '{$kbs_tec}', '{$nabs_tec}', '{$aluminium}', '{$otherbases}', '{$hydrogen}', '{$cabs_min}', '{$ca_ppm_min}', '{$cabs_max}', '{$ca_ppm_max}', '{$mgbs_min}', '{$mg_ppm_min}', '{$mgbs_max}', '{$mg_ppm_max}', '{$kbs_min}', '{$k_ppm_min}', '{$kbs_max}', '{$k_ppm_max}', '{$nabs_min}', '{$na_ppm_min}', '{$nabs_max}', '{$na_ppm_max}', '{$albs_min}', '{$al_ppm_min}', '{$albs_max}', '{$al_ppm_max}', '{$ob_rec}', '{$h_rec}', '{$ca_mgRatio}', '{$rand}' )" ); $insert_id = mysqli_insert_id($con); if ($sql === TRUE) { sleep(10); // forward to results page if successfully inserts to database [[~32]] echo ""; } else { die(mysqli_error($con)); // TODO: better error handling //echo "User Profile incorrect"; } }
[[$plantPOPUP]]