39.cache.php 20 KB

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