39.include.cache.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. <?php
  2. //error_reporting(E_ALL);
  3. error_reporting(E_ALL ^ E_NOTICE);
  4. ini_set('display_errors', 1);
  5. $errorLog = 1;
  6. if(isset($_POST['SoilcsvForm'])) {
  7. if ($errorLog = "1") { error_log(print_r($_POST, true)); }
  8. $sql = null;
  9. $con = mysqli_connect("localhost", "root", "R3M0T31", "cropmonitor");
  10. //set todays date
  11. $date = date("Y-m-d H:i:s");
  12. // ****************************************************************************
  13. // Client Details
  14. $client_id = (isset($_POST["client_id"])) ? $_POST["client_id"] : "";
  15. $modx_id = (isset($_POST["m_user"])) ? $_POST["m_user"] : "";
  16. $email = (isset($_POST["email"])) ? $_POST["email"] : "";
  17. $client_name = (isset($_POST["name"])) ? $_POST["name"] : "";
  18. $site_address = (isset($_POST["site_address"])) ? $_POST["site_address"] : "";
  19. $state_postcode = (isset($_POST["state_postcode"])) ? $_POST["state_postcode"] : "";
  20. // Analysis Details
  21. $analysis_type = "Soil Test"; //for future types of Soil Analysis
  22. $lab_no = (isset($_POST["lab_no"])) ? $_POST["lab_no"] : "";
  23. $batch_no = (isset($_POST["batch_no"])) ? $_POST["batch_no"] : "";
  24. $sample_id = (isset($_POST["sample_id"])) ? $_POST["sample_id"] : "";
  25. $site_id = (isset($_POST["site_id"])) ? $_POST["site_id"] : "";
  26. $crop_type = (isset($_POST["crop_type"])) ? $_POST["crop_type"] : "";
  27. $soil_type = (isset($_POST["soil_type"])) ? $_POST["soil_type"] : "";
  28. $date_sampled = (isset($_POST["date_sampled"])) ? $_POST["date_sampled"] : "";
  29. $date_sampled = date("Y-m-d", strtotime($date_sampled));
  30. // Sample Details
  31. $texture = (isset($_POST["texture"])) ? $_POST["texture"] : "";
  32. $gravel = (isset($_POST["gravel"])) ? $_POST["gravel"] : "";
  33. $colour = (isset($_POST["colour"])) ? $_POST["colour"] : "";
  34. $ocarbon = (isset($_POST["ocarbon"])) ? $_POST["ocarbon"] : "";
  35. $omatter = (isset($_POST["omatter"])) ? $_POST["omatter"] : "";
  36. $ph_cacl2 = (isset($_POST["ph_cacl2"])) ? $_POST["ph_cacl2"] : "";
  37. $ph_h2o = (isset($_POST["ph_h2o"])) ? $_POST["ph_h2o"] : "";
  38. $paramag = (isset($_POST["paramag"])) ? $_POST["paramag"] : "";
  39. $ec = (isset($_POST["ec"])) ? $_POST["ec"] : "";
  40. // Nutrient Details
  41. $NO3_N = (isset($_POST["NO3_N"])) ? $_POST["NO3_N"] : "";
  42. $NH3_N = (isset($_POST["NH3_N"])) ? $_POST["NH3_N"] : "";
  43. $p_mehlick = (isset($_POST["p_mehlick"])) ? $_POST["p_mehlick"] : "";
  44. $p_bray2 = (isset($_POST["p_bray2"])) ? $_POST["p_bray2"] : "";
  45. $p_morgan = (isset($_POST["p_morgan"])) ? $_POST["p_morgan"] : "";
  46. $k_morgan = (isset($_POST["k_morgan"])) ? $_POST["k_morgan"] : "";
  47. $ca_morgan = (isset($_POST["ca_morgan"])) ? $_POST["ca_morgan"] : "";
  48. $mg_morgan = (isset($_POST["mg_morgan"])) ? $_POST["mg_morgan"] : "";
  49. $na_morgan = (isset($_POST["na_morgan"])) ? $_POST["na_morgan"] : "";
  50. $ch_h2o = (isset($_POST["ch_h2o"])) ? $_POST["ch_h2o"] : "";
  51. $fe = (isset($_POST["fe"])) ? $_POST["fe"] : "";
  52. $s_morgan = (isset($_POST["s_morgan"])) ? $_POST["s_morgan"] : "";
  53. $b_cacl2 = (isset($_POST["b_cacl2"])) ? $_POST["b_cacl2"] : "";
  54. $mn_dtpa = (isset($_POST["mn_dtpa"])) ? $_POST["mn_dtpa"] : "";
  55. $zn_dtpa = (isset($_POST["zn_dtpa"])) ? $_POST["zn_dtpa"] : "";
  56. $fe_dtpa = (isset($_POST["fe_dtpa"])) ? $_POST["fe_dtpa"] : "";
  57. $cu_dtpa = (isset($_POST["cu_dtpa"])) ? $_POST["cu_dtpa"] : "";
  58. $al = (isset($_POST["al"])) ? $_POST["al"] : "";
  59. $sl_cacl2 = (isset($_POST["sl_cacl2"])) ? $_POST["sl_cacl2"] : "";
  60. $m_dtpa = (isset($_POST["m_dtpa"])) ? $_POST["m_dtpa"] : "";
  61. $co_dtpa = (isset($_POST["co_dtpa"])) ? $_POST["co_dtpa"] : "";
  62. $se = (isset($_POST["se"])) ? $_POST["se"] : "";
  63. // Base Saturation Details
  64. $tec = (isset($_POST["tec"])) ? $_POST["tec"] : "";
  65. $cec = (isset($_POST["cec"])) ? $_POST["cec"] : "";
  66. //Base Saturation as M.E./100g
  67. $ca_mehlick3 = (isset($_POST["ca_mehlick3"])) ? $_POST["ca_mehlick3"] : "";
  68. $mg_mehlick3 = (isset($_POST["mg_mehlick3"])) ? $_POST["mg_mehlick3"] : "";
  69. $k_mehlick3 = (isset($_POST["k_mehlick3"])) ? $_POST["k_mehlick3"] : "";
  70. $na_mehlick3 = (isset($_POST["na_mehlick3"])) ? $_POST["na_mehlick3"] : "";
  71. $al_mehlick3 = (isset($_POST["al_mehlick3"])) ? $_POST["al_mehlick3"] : "";
  72. //Base Saturation as PPM
  73. if ($_POST["calcium_me3"] == "ppm") {
  74. $ca_mehlick3 = (isset($_POST["ca_mehlick3_ppm"])) ? ($_POST["ca_mehlick3_ppm"] / 200) : "";
  75. }
  76. if ($_POST["magnesium_me3"] == "ppm") {
  77. $mg_mehlick3 = (isset($_POST["mg_mehlick3_ppm"])) ? ($_POST["mg_mehlick3_ppm"] / 120) : "";
  78. }
  79. if ($_POST["postassium_me3"] == "ppm") {
  80. $k_mehlick = (isset($_POST["k_mehlick3_ppm"])) ? ($_POST["k_mehlick3_ppm"] / 390) : "";
  81. }
  82. if ($_POST["soduim_me3"] == "ppm") {
  83. $na_mehlick3 = (isset($_POST["na_mehlick3_ppm"])) ? ($_POST["na_mehlick3_ppm"] / 230) : "";
  84. }
  85. // Totals for Ratis
  86. $c_total = (isset($_POST["c_total"])) ? $_POST["c_total"] : "";
  87. $n_total = (isset($_POST["n_total"])) ? $_POST["n_total"] : "";
  88. //Create Carbon Nitrogen Ratio if not specified
  89. if ($_POST["c_nRatio"] = "") {
  90. $c_nRatio = (isset($_POST["c_nRatio"])) ? $_POST["c_nRatio"] : "";
  91. } else {
  92. $c_nRatio = ( $c_total / $n_total );
  93. }
  94. //Create CA MG Ratio if not specified
  95. if ($_POST["ca_mgRatio"] = "") {
  96. $ca_mgRatio = (isset($_POST["ca_mgRatio"])) ? $_POST["ca_mgRatio"] : "";
  97. } else {
  98. $ca_mgRatio = ( (int)$ca_mehlick3 / (int)$mg_mehlick3 );
  99. }
  100. //$rand = substr(md5(microtime()),rand(0,26),5);
  101. $rand = mt_rand(10000, 99999);
  102. // PH lookup table (ph*10 rounded to single decimal point for easy lookup)
  103. $phrange = array(
  104. 30 => [75.0, 11.4],
  105. 31 => [74.0, 11.2],
  106. 32 => [73.0, 11.0],
  107. 33 => [72.0, 10.8],
  108. 34 => [71.0, 10.6],
  109. 35 => [70.0, 10.4],
  110. 36 => [69.0, 10.2],
  111. 37 => [68.0, 10.0],
  112. 38 => [67.0, 9.8],
  113. 39 => [66.0, 9.6],
  114. 40 => [65.0, 9.4],
  115. 41 => [63.0, 9.2],
  116. 42 => [61.0, 9.0],
  117. 43 => [59.0, 8.8],
  118. 44 => [57.0, 8.6],
  119. 45 => [55.0, 8.4],
  120. 46 => [53.0, 8.2],
  121. 47 => [51.0, 8.0],
  122. 48 => [49.0, 7.8],
  123. 49 => [47.0, 7.6],
  124. 50 => [45.0, 7.4],
  125. 51 => [42.0, 7.2],
  126. 52 => [39.0, 7.0],
  127. 53 => [36.0, 6.8],
  128. 54 => [33.0, 6.6],
  129. 55 => [30.0, 6.4],
  130. 56 => [27.0, 6.2],
  131. 57 => [24.0, 6.0],
  132. 58 => [21.0, 5.8],
  133. 59 => [18.0, 5.6],
  134. 60 => [15.0, 5.4],
  135. 61 => [13.5, 5.3],
  136. 62 => [12.0, 5.2],
  137. 63 => [10.5, 5.1],
  138. 64 => [9.0, 5.0],
  139. 65 => [7.5, 4.9],
  140. 66 => [6.0, 4.8],
  141. 67 => [4.5, 4.7],
  142. 68 => [3.0, 4.6],
  143. 69 => [1.5, 4.5],
  144. 70 => [0.0, 4.4],
  145. 71 => [0.0, 4.3],
  146. 72 => [0.0, 4.2],
  147. 73 => [0.0, 4.1],
  148. 74 => [0.0, 4.0],
  149. 75 => [0.0, 3.9],
  150. 76 => [0.0, 3.8],
  151. 77 => [0.0, 3.7],
  152. 78 => [0.0, 3.6],
  153. 79 => [0.0, 3.5],
  154. 80 => [0.0, 3.4],
  155. 81 => [0.0, 3.3],
  156. 82 => [0.0, 3.2],
  157. 83 => [0.0, 3.1],
  158. 84 => [0.0, 3.0],
  159. 85 => [0.0, 2.9],
  160. 86 => [0.0, 2.8],
  161. 87 => [0.0, 2.7],
  162. 88 => [0.0, 2.6],
  163. 89 => [0.0, 2.5],
  164. 90 => [0.0, 2.4],
  165. 91 => [0.0, 2.3],
  166. 92 => [0.0, 2.2],
  167. 93 => [0.0, 2.1],
  168. 94 => [0.0, 2.0],
  169. 95 => [0.0, 1.9],
  170. 96 => [0.0, 1.8],
  171. 97 => [0.0, 1.7],
  172. 98 => [0.0, 1.6],
  173. 99 => [0.0, 1.5],
  174. 100 => [0.0, 1.4],
  175. );
  176. /* ********* START ********* */
  177. /* ********* ADD BASE SATURATION CALCULATION HERE ********* */
  178. // Calculating hydrogen and otherbases
  179. $ph = $ph_h2o; // $ph_h2o from above
  180. $aluminium = $al_mehlick3;
  181. // round the ph value to single decimal point
  182. $ph_lookup = round($ph, 2);
  183. if ($errorLog = "1") { error_log(print_r("ph_lookup: " . $ph_lookup . " ph: " . $ph, true )); }
  184. // lookup Hydrogen and Other Bases
  185. $hydrogen = $phrange[($ph_lookup * 10)][0];
  186. $otherbases = $phrange[($ph_lookup * 10)][1];
  187. $h_rec = round($hydrogen, 2); // recommended level added to DB
  188. $ob_rec = round($otherbases, 2); // recommended level added to DB
  189. if ($errorLog = "1") { error_log(print_r("Hydrogen: " . $hydrogen . " Other Bases: " . $otherbases, true)); }
  190. if ( $aluminium < 0 ) {
  191. $otherbases = 0;
  192. }
  193. $obresult = 0; // obresult == Other Bases Result
  194. $hresult = 0; // hresult == Hydrogen Result
  195. // IF ********************************************************************************
  196. if ( $otherbases > 0 ) {
  197. while ( (($obresult * 100) / $cec) <= $otherbases ) {
  198. $obresult += 0.001;
  199. $tempNo = $obresult;
  200. $tempNo1 = $otherbases;
  201. $tempNo2 = $hydrogen;
  202. // CAUTION: storing value in Calc:E16
  203. $hresult = ($tempNo * $tempNo2) / $tempNo1;
  204. }
  205. $obresult -= 0.001;
  206. if ( $hresult != 0 ){
  207. $hresult -= 0.001;
  208. }
  209. } else {
  210. while( (($hresult * 100) / $tec) <= $hydrogen ) {
  211. $hresultl += 0.001;
  212. }
  213. $hresult -= 0.001;
  214. }
  215. if ($errorLog = "1") { error_log(print_r("hresult: " . $hresult . " obresult: " . $obresult, true)); }
  216. // END If ********************************************************************************
  217. // Calculating Ca Mg K Na levels based on temp
  218. // *** I think that the tecTemp needs to be a sum of $tec and $hresult and $obresult ***
  219. // *** As far as I can see on the spreadsheet the TEC in CALC:B16 is "CEC + obresult + CALC:E16"
  220. $tecTemp = $cec + $obresult + $hresult;
  221. $tec = round($tecTemp, 2);
  222. $cec = round($cec, 2);
  223. if ($errorLog = "1") { error_log(print_r("tecTemp: " . $tecTemp . " cec: " . $cec . " tec: " . $tec, true)); }
  224. // CAUTION: for $tecTemp values below 1 and above 100000 this will not work
  225. if ( ( 1.0 < $tecTemp ) && ( $tecTemp >= 3.0 ) ) {
  226. $cabs = $CABS = 0;
  227. $cabsmax = $CABSMAX = 60.00;
  228. $mgbs = $MGBS = 0;
  229. $mgbsmax = $MGBSMAX = 20.00;
  230. $kbs = $KBS = 5.00;
  231. $kbsmax = $KBSMAX = 7.00;
  232. $nabs = $NABS = 0.50;
  233. $nabsmax = $NABSMAX = 1.50;
  234. }
  235. elseif ( ( 3.0 < $tecTemp ) && ( $tecTemp >= 5.0 ) ) {
  236. $cabs = $CABS = 0;
  237. $cabsmax = $CABSMAX = 62.00;
  238. $mgbs = $MGBS = 0;
  239. $mgbsmax = $MGBSMAX = 18.00;
  240. $kbs = $KBS = 5.00;
  241. $kbsmax = $KBSMAX = 7.00;
  242. $nabs = $NABS = 0.50;
  243. $nabsmax = $NABSMAX = 1.50;
  244. }
  245. elseif ( ( 5.0 < $tecTemp ) && ( $tecTemp >= 7.0 ) ) {
  246. $cabs = $CABS = 0;
  247. $cabsmax = $CABSMAX = 64.00;
  248. $mgbs = $MGBS = 0;
  249. $mgbsmax = $MGBSMAX = 16.00;
  250. $kbs = $KBS = 4.00;
  251. $kbsmax = $KBSMAX = 7.00;
  252. $nabs = $NABS = 0.50;
  253. $nabsmax = $NABSMAX = 1.50;
  254. }
  255. elseif ( ( 7.0 < $tecTemp ) && ( $tecTemp >= 9.0 ) ) {
  256. $cabs = $CABS = 0;
  257. $cabsmax = $CABSMAX = 65.00;
  258. $mgbs = $MGBS = 0;
  259. $mgbsmax = $MGBSMAX = 15.00;
  260. $kbs = $KBS = 4.00;
  261. $kbsmax = $KBSMAX = 7.00;
  262. $nabs = $NABS = 0.50;
  263. $nabsmax = $NABSMAX = 1.50;
  264. }
  265. elseif ( ( 9.0 < $tecTemp ) && ( $tecTemp >= 11.0 ) ) {
  266. $cabs = $CABS = 0;
  267. $cabsmax = $CABSMAX = 67.00;
  268. $mgbs = $MGBS = 0;
  269. $mgbsmax = $MGBSMAX = 13.00;
  270. $kbs = $KBS = 4.00;
  271. $kbsmax = $KBSMAX = 7.00;
  272. $nabs = $NABS = 0.50;
  273. $nabsmax = $NABSMAX = 1.50;
  274. }
  275. elseif ( ( 11.0 < $tecTemp ) && ( $tecTemp >= 30.0 ) ) {
  276. $cabs = $CABS = 0;
  277. $cabsmax = $CABSMAX = 68.00;
  278. $mgbs = $MGBS = 0;
  279. $mgbsmax = $MGBSMAX = 12.00;
  280. $kbs = $KBS = 4.00;
  281. $kbsmax = $KBSMAX = 7.00;
  282. $nabs = $NABS = 0.50;
  283. $nabsmax = $NABSMAX = 1.50;
  284. }
  285. elseif ( ( 30.0 < $tecTemp ) && ( $tecTemp >= 100000.0 ) ) {
  286. $cabs = $CABS = 0;
  287. $cabsmax = $CABSMAX = 70.00;
  288. $mgbs = $MGBS = 0;
  289. $mgbsmax = $MGBSMAX = 10.00;
  290. $kbs = $KBS = 3.00;
  291. $kbsmax = $KBSMAX = 6.00;
  292. $nabs = $NABS = 0.50;
  293. $nabsmax = $NABSMAX = 1.50;
  294. }
  295. // *** CALCULATED TEC % AND PPM MIN / MAX LEVELS
  296. $cabs_min = $cabs;
  297. $ca_ppm_min = ( $tec * $cabs_min *2 );
  298. $cabs_max = $cabsmax;
  299. $ca_ppm_max = ( $tec * $cabs_max * 2);
  300. $mgbs_min = $mgbs;
  301. $mg_ppm_min = ( $tec * $mgbs_min * 1.2 );
  302. $mgbs_max = $mgbsmax;
  303. $mg_ppm_max = ( $tec * $mgbs_max * 1.2 );
  304. $kbs_min = $kbs;
  305. $k_ppm_min = ( $tec * $kbs_min * 3.9 );
  306. $kbs_max = $kbsmax;
  307. $k_ppm_max = ( $tec * $kbs_max * 3.9 );
  308. $nabs_min = $nabs;
  309. $na_ppm_min = ( $tec * $nabs_min * 2.3 );
  310. $nabs_max = $nabsmax;
  311. $na_ppm_max = ( $tec * $nabs_max * 2.3 );
  312. $albs_min = "0";
  313. $al_ppm_min = ( $tec * $albs_min * 0.9 );
  314. $albs_max = "0.5";
  315. $al_ppm_max = ( $tec * $albs_max * 0.9 );
  316. // *** CALCULATED TEC LEVELS
  317. $cabs_tec = ( $ca_mehlick3 / $tec ) * 100;
  318. $cabs_tec = round($cabs_tec, 2);
  319. $mgbs_tec = ( $mg_mehlick3 / $tec ) * 100;
  320. $mgbs_tec = round($mgbs_tec, 2);
  321. $kbs_tec = ( $k_mehlick3 / $tec ) * 100;
  322. $kbs_tec = round($kbs_tec, 2);
  323. $nabs_tec = ( $na_mehlick3 / $tec ) * 100;
  324. $nabs_tec = round($nabs_tec, 2);
  325. $albs_tec = ( $al_mehlick3 / $tec ) * 100;
  326. $albs_tec = round($albs_tec, 2);
  327. // *** CALCULATED PPM FROM MEQ
  328. $BS_ca_ppm = $ca_mehlick3 * 200;
  329. $BS_mg_ppm = $mg_mehlick3 * 120;
  330. $BS_k_ppm = $k_mehlick3 * 390;
  331. $BS_na_ppm = $na_mehlick3 * 230;
  332. $BS_al_ppm = $al_mehlick3 * 90;
  333. /* ********* ADD BASE SATURATION CALCULATION HERE ********* */
  334. /* ********* END ********* */
  335. // Check connection
  336. if (mysqli_connect_errno())
  337. {
  338. echo "Failed to connect to MySQL: " . mysqli_connect_error();
  339. }
  340. $sql = mysqli_query($con, "INSERT into `soil_records`
  341. (
  342. client_records_id,
  343. modx_user_id,
  344. date,
  345. email,
  346. client_name,
  347. site_address,
  348. state_postcode,
  349. analysis_type,
  350. lab_no,
  351. batch_no,
  352. sample_id,
  353. site_id,
  354. crop_type,
  355. soil_type,
  356. date_sampled,
  357. tec,
  358. cec,
  359. texture,
  360. gravel,
  361. colour,
  362. NO3_N,
  363. NH3_N,
  364. p_mehlick,
  365. p_bray2,
  366. p_morgan,
  367. k_morgan,
  368. ca_morgan,
  369. mg_morgan,
  370. na_morgan,
  371. ch_h2o,
  372. ocarbon,
  373. omatter,
  374. fe,
  375. ec,
  376. ph_cacl2,
  377. ph_h2o,
  378. paramag,
  379. s_morgan,
  380. b_cacl2,
  381. mn_dtpa,
  382. zn_dtpa,
  383. fe_dtpa,
  384. cu_dtpa,
  385. al,
  386. sl_cacl2,
  387. m_dtpa,
  388. co_dtpa,
  389. se,
  390. ca_mehlick3,
  391. BS_ca_ppm,
  392. mg_mehlick3,
  393. BS_mg_ppm,
  394. k_mehlick3,
  395. BS_k_ppm,
  396. na_mehlick3,
  397. BS_na_ppm,
  398. al_mehlick3,
  399. BS_al_ppm,
  400. BS_ca2,
  401. BS_mg2,
  402. BS_k,
  403. BS_na,
  404. BS_al3,
  405. BS_ob,
  406. BS_h,
  407. cabs_min,
  408. ca_ppm_min,
  409. cabs_max,
  410. ca_ppm_max,
  411. mgbs_min,
  412. mg_ppm_min,
  413. mgbs_max,
  414. mg_ppm_max,
  415. kbs_min,
  416. k_ppm_min,
  417. kbs_max,
  418. k_ppm_max,
  419. nabs_min,
  420. na_ppm_min,
  421. nabs_max,
  422. na_ppm_max,
  423. albs_min,
  424. al_ppm_min,
  425. albs_max,
  426. al_ppm_max,
  427. ob_rec,
  428. h_rec,
  429. ca_mg_ratio,
  430. rand
  431. ) VALUES (
  432. '" . $client_id . "',
  433. '" . $modx_id . "',
  434. '" . $date . "',
  435. '" . $email . "',
  436. '" . $client_name . "',
  437. '" . $site_address . "',
  438. '" . $state_postcode . "',
  439. '" . $analysis_type . "',
  440. '" . $lab_no . "',
  441. '" . $batch_no . "',
  442. '" . $sample_id . "',
  443. '" . $site_id . "',
  444. '" . $crop_type . "',
  445. '" . $soil_type . "',
  446. '" . $date_sampled . "',
  447. '" . $tec . "',
  448. '" . $cec . "',
  449. IF('" . $texture . "'='',NULL,'" . $texture . "'),
  450. IF('" . $gravel . "'='',NULL,'" . $gravel . "'),
  451. IF('" . $colour . "'='',NULL,'" . $colour . "'),
  452. '" . $NO3_N . "',
  453. '" . $NH3_N . "',
  454. '" . $p_mehlick . "',
  455. '" . $p_bray2 . "',
  456. '" . $p_morgan . "',
  457. '" . $k_morgan . "',
  458. '" . $ca_morgan . "',
  459. '" . $mg_morgan . "',
  460. '" . $na_morgan . "',
  461. '" . $ch_h2o . "',
  462. '" . $ocarbon . "',
  463. '" . $omatter . "',
  464. '" . $fe . "',
  465. '" . $ec . "',
  466. '" . $ph_cacl2 . "',
  467. '" . $ph_h2o . "',
  468. IF('" . $paramag . "'='',NULL,'" . $paramag . "'),
  469. '" . $s_morgan . "',
  470. '" . $b_cacl2 . "',
  471. '" . $mn_dtpa . "',
  472. '" . $zn_dtpa . "',
  473. '" . $fe_dtpa . "',
  474. '" . $cu_dtpa . "',
  475. '" . $al . "',
  476. '" . $sl_cacl2 . "',
  477. '" . $m_dtpa . "',
  478. '" . $co_dtpa . "',
  479. '" . $se . "',
  480. '" . $ca_mehlick3 . "',
  481. '" . $BS_ca_ppm . "',
  482. '" . $mg_mehlick3 . "',
  483. '" . $BS_mg_ppm . "',
  484. '" . $k_mehlick3 . "',
  485. '" . $BS_k_ppm . "',
  486. '" . $na_mehlick3 . "',
  487. '" . $BS_na_ppm . "',
  488. '" . $al_mehlick3 . "',
  489. '" . $BS_al_ppm . "',
  490. '" . $cabs_tec . "',
  491. '" . $mgbs_tec . "',
  492. '" . $kbs_tec . "',
  493. '" . $nabs_tec . "',
  494. '" . $aluminium . "',
  495. '" . $otherbases . "',
  496. '" . $hydrogen . "',
  497. '" . $cabs_min . "',
  498. '" . $ca_ppm_min . "',
  499. '" . $cabs_max . "',
  500. '" . $ca_ppm_max . "',
  501. '" . $mgbs_min . "',
  502. '" . $mg_ppm_min . "',
  503. '" . $mgbs_max . "',
  504. '" . $mg_ppm_max . "',
  505. '" . $kbs_min . "',
  506. '" . $k_ppm_min . "',
  507. '" . $kbs_max . "',
  508. '" . $k_ppm_max . "',
  509. '" . $nabs_min . "',
  510. '" . $na_ppm_min . "',
  511. '" . $nabs_max . "',
  512. '" . $na_ppm_max . "',
  513. '" . $albs_min . "',
  514. '" . $al_ppm_min . "',
  515. '" . $albs_max . "',
  516. '" . $al_ppm_max . "',
  517. '" . $ob_rec . "',
  518. '" . $h_rec . "',
  519. '" . $ca_mgRatio . "',
  520. '" . $rand . "'
  521. )" );
  522. $insert_id = mysqli_insert_id($con);
  523. if ($sql === TRUE)
  524. {
  525. // forward to results page if successfully inserts to database [[~32]]
  526. echo "<script>location.href = '[[~41]]?rand=" . $rand . "&cid=" . $sample_id . "&rid=" . $insert_id . "&stid=" .$crop_type . "';</script>";
  527. } else {
  528. die(mysqli_error($con)); // TODO: better error handling
  529. //echo "User Profile incorrect";
  530. }
  531. }
  532. return;