test-analysis.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821
  1. <?php
  2. error_reporting(E_ALL);
  3. ini_set('display_errors', 1);
  4. $sql = null;
  5. $con = mysqli_connect("localhost", "cropmonitor", "brvnCcaEYxlPCS3", "cropmonitor");
  6. //set todays date
  7. $date = date("Y-m-d H:i:s");
  8. //Get figures
  9. $email = "ben@tazz.com.au";
  10. $client_name = "Benjamin Harris";
  11. $site_address = "24 Alfred Street";
  12. $state_postcode = "";
  13. $analysis_type = "Soil Test"; //for future types of Soil Analysis
  14. $lab_no = "NT2698/3";
  15. $batch_no = "3";
  16. $sample_id = "Sample 3";
  17. $site_id = "";
  18. $crop_type = "Grape";
  19. $soil_type = "sandy"; //need to fix form to say soil_type not analysis_type
  20. $date_sampled = "2018/11/22";
  21. $tec = "50.2";
  22. $cec = "45.4";
  23. $texture = "Clay Loam";
  24. $gravel = "";
  25. $colour = "Black";
  26. $NO3_N = "2.6";
  27. $NH3_N = "5.3";
  28. $p_mehlick = "36";
  29. $p_bray2 = "0";
  30. $p_morgan = "4.1";
  31. $k_morgan = "154";
  32. $ca_morgan = "4174";
  33. $mg_morgan = "1347";
  34. $na_morgan = "0";
  35. $ch_h2o = "62";
  36. $ocarbon = "3.95";
  37. $omatter = ($ocarbon * 2.7);
  38. $fe = "0";
  39. $ec = "0.097";
  40. $ph_cacl2 = "";
  41. $ph_h2o = "6.4";
  42. $paramag = "6000";
  43. $s_morgan = "";
  44. $b_cacl2 = "1.24";
  45. $mn_dtpa = "40";
  46. $zn_dtpa = "9.5";
  47. $fe_dtpa = "156";
  48. $cu_dtpa = "7.6";
  49. $al = "0";
  50. $sl_cacl2 = "0";
  51. $m_dtpa = "0";
  52. $co_dtpa = "0";
  53. $se = "0";
  54. $ca_mehlick3 = "30.28";
  55. $mg_mehlick3 = "14.01";
  56. $k_mehlick3 = "0.76";
  57. $na_mehlick3 = "0.38";
  58. $al_mehlick3 = "0.24";
  59. $c_total = "4.5";
  60. $n_total = ($NO3_N + $NH3_N);
  61. $c_nRatio = ($c_total / $n_total);
  62. $ca_mgRatio = ($ca_mehlick3 / $mg_mehlick3);
  63. //$rand = substr(md5(microtime()),rand(0,26),5);
  64. $rand = mt_rand(10000, 99999);
  65. // PH lookup table (ph*10 rounded to single decimal point for easy lookup)
  66. $phrange = array(
  67. 30 => [75.0, 11.4],
  68. 31 => [74.0, 11.2],
  69. 32 => [73.0, 11.0],
  70. 33 => [72.0, 10.8],
  71. 34 => [71.0, 10.6],
  72. 35 => [70.0, 10.4],
  73. 36 => [69.0, 10.2],
  74. 37 => [68.0, 10.0],
  75. 38 => [67.0, 9.8],
  76. 39 => [66.0, 9.6],
  77. 40 => [65.0, 9.4],
  78. 41 => [63.0, 9.2],
  79. 42 => [61.0, 9.0],
  80. 43 => [59.0, 8.8],
  81. 44 => [57.0, 8.6],
  82. 45 => [55.0, 8.4],
  83. 46 => [53.0, 8.2],
  84. 47 => [51.0, 8.0],
  85. 48 => [49.0, 7.8],
  86. 49 => [47.0, 7.6],
  87. 50 => [45.0, 7.4],
  88. 51 => [42.0, 7.2],
  89. 52 => [39.0, 7.0],
  90. 53 => [36.0, 6.8],
  91. 54 => [33.0, 6.6],
  92. 55 => [30.0, 6.4],
  93. 56 => [27.0, 6.2],
  94. 57 => [24.0, 6.0],
  95. 58 => [21.0, 5.8],
  96. 59 => [18.0, 5.6],
  97. 60 => [15.0, 5.4],
  98. 61 => [13.5, 5.3],
  99. 62 => [12.0, 5.2],
  100. 63 => [10.5, 5.1],
  101. 64 => [9.0, 5.0],
  102. 65 => [7.5, 4.9],
  103. 66 => [6.0, 4.8],
  104. 67 => [4.5, 4.7],
  105. 68 => [3.0, 4.6],
  106. 69 => [1.5, 4.5],
  107. 70 => [0.0, 4.4],
  108. 71 => [0.0, 4.3],
  109. 72 => [0.0, 4.2],
  110. 73 => [0.0, 4.1],
  111. 74 => [0.0, 4.0],
  112. 75 => [0.0, 3.9],
  113. 76 => [0.0, 3.8],
  114. 77 => [0.0, 3.7],
  115. 78 => [0.0, 3.6],
  116. 79 => [0.0, 3.5],
  117. 80 => [0.0, 3.4],
  118. 81 => [0.0, 3.3],
  119. 82 => [0.0, 3.2],
  120. 83 => [0.0, 3.1],
  121. 84 => [0.0, 3.0],
  122. 85 => [0.0, 2.9],
  123. 86 => [0.0, 2.8],
  124. 87 => [0.0, 2.7],
  125. 88 => [0.0, 2.6],
  126. 89 => [0.0, 2.5],
  127. 90 => [0.0, 2.4],
  128. 91 => [0.0, 2.3],
  129. 92 => [0.0, 2.2],
  130. 93 => [0.0, 2.1],
  131. 94 => [0.0, 2.0],
  132. 95 => [0.0, 1.9],
  133. 96 => [0.0, 1.8],
  134. 97 => [0.0, 1.7],
  135. 98 => [0.0, 1.6],
  136. 99 => [0.0, 1.5],
  137. 100 => [0.0, 1.4],
  138. );
  139. /* ********* START ********* */
  140. /* ********* ADD BASE SATURATION CALCULATION HERE ********* */
  141. // ***
  142. // calculating hydrogen and otherbases
  143. // ***
  144. $ph = $ph_h2o; // $ph_h2o from above
  145. $aluminium = $al; // VERIFY: assuming $al is aluminium
  146. // round the ph value to single decimal point
  147. $ph_lookup = round($ph, 1);
  148. // lookup H and Other Bases
  149. $hydrogen = $phrange[($ph_lookup * 10)][0];
  150. $other_Bases = $phrange[($ph_lookup * 10)][1];
  151. // CAUTION: $otherbases & other_Bases are too similar variable names, prone to error
  152. $otherbases = $other_Bases;
  153. // CAUTION: $otherbases & $otherBases can be different variables depending on aluminum levels.
  154. if ( $aluminium < 0 ) {
  155. $otherbases = 0;
  156. }
  157. // INTEGRATE: in the spreadsheet at this point the macro sets the value of hydrogen into a cell
  158. // there is no comparable variable here... don't know if the cell gets used again...
  159. // *** the hydrogen value that is entered into the cell is the final Hydrogen value, which is then just written to the database ***
  160. $hbs = $hydrogen;
  161. //
  162. // obresult
  163. //
  164. $obresult = 0; // INTEGRATE: starting at zero per spreadsheet, double check that this is intended
  165. if ( $otherbases > 0 ) {
  166. while ( ($obresult * 100 / $tec) <= $otherbases ) {
  167. $obresult += 0.001;
  168. $tempNo = $obresult;
  169. $tempNo1 = $otherbases;
  170. $tempNo2 = $hydrogen;
  171. // CAUTION: storing value in Calc:E16
  172. $obresult_offset_1_0_cell = $tempNo * $tempNo2 / $tempNo1;
  173. }
  174. $obresult -= 0.001;
  175. if ( $obresult_offset_1_0_cell != 0 ){
  176. $obresult_offset_1_0_cell -= 0.001;
  177. }
  178. }
  179. else {
  180. // ERROR: VALUE OF CELL Calc:E16 IS BEING READ PRIOR TO ASSIGNMENT!!
  181. // THIS COULD BE USING LEFT OVER DATA FROM PREVIOUS RUNS! THE CURRENT VALUE IS 0.
  182. $obresult_offset_1_0_cell = 0; // INTEGRATE: NEEDS VALUE ASSIGNED
  183. while( ($obresult_offset_1_0_cell * 100 / $tec) <= $hydrogen ) {
  184. $obresult_offset_1_0_cell += 0.001;
  185. }
  186. $obresult_offset_1_0_cell -= 0.001;
  187. }
  188. //
  189. // Calculating Ca Mg K Na levels based on temp
  190. //
  191. // *** I think that the tecTemp needs to be a sum of $tec and $obresult_offset_1_0_cell and $obresult ***
  192. // *** As far as I can see on the spreadsheet the TEC in CALC:B16 is "CEC + obresult + CALC:E16"
  193. //$tecTemp = $obresult_offset_1_0_cell;
  194. $tecTemp = $cec + $obresult + $obresult_offset_1_0_cell;
  195. $tec = $tecTemp;
  196. // CAUTION: for $tecTemp values below 1 and above 100000 this will not work
  197. if ( ( 1.0 < $tecTemp ) && ( $tecTemp >= 3.0 ) ) {
  198. $cabs = $CABS = 0;
  199. $cabsmax = $CABSMAX = 60.00;
  200. $mgbs = $MGBS = 0;
  201. $mgbsmax = $MGBSMAX = 20.00;
  202. $kbs = $KBS = 5.00;
  203. $kbsmax = $KBSMAX = 7.00;
  204. $nabs = $NABS = 0.50;
  205. $nabsmax = $NABSMAX = 1.50;
  206. }
  207. elseif ( ( 3.0 < $tecTemp ) && ( $tecTemp >= 5.0 ) ) {
  208. $cabs = $CABS = 0;
  209. $cabsmax = $CABSMAX = 62.00;
  210. $mgbs = $MGBS = 0;
  211. $mgbsmax = $MGBSMAX = 18.00;
  212. $kbs = $KBS = 5.00;
  213. $kbsmax = $KBSMAX = 7.00;
  214. $nabs = $NABS = 0.50;
  215. $nabsmax = $NABSMAX = 1.50;
  216. }
  217. elseif ( ( 5.0 < $tecTemp ) && ( $tecTemp >= 7.0 ) ) {
  218. $cabs = $CABS = 0;
  219. $cabsmax = $CABSMAX = 64.00;
  220. $mgbs = $MGBS = 0;
  221. $mgbsmax = $MGBSMAX = 16.00;
  222. $kbs = $KBS = 4.00;
  223. $kbsmax = $KBSMAX = 7.00;
  224. $nabs = $NABS = 0.50;
  225. $nabsmax = $NABSMAX = 1.50;
  226. }
  227. elseif ( ( 7.0 < $tecTemp ) && ( $tecTemp >= 9.0 ) ) {
  228. $cabs = $CABS = 0;
  229. $cabsmax = $CABSMAX = 65.00;
  230. $mgbs = $MGBS = 0;
  231. $mgbsmax = $MGBSMAX = 15.00;
  232. $kbs = $KBS = 4.00;
  233. $kbsmax = $KBSMAX = 7.00;
  234. $nabs = $NABS = 0.50;
  235. $nabsmax = $NABSMAX = 1.50;
  236. }
  237. elseif ( ( 9.0 < $tecTemp ) && ( $tecTemp >= 11.0 ) ) {
  238. $cabs = $CABS = 0;
  239. $cabsmax = $CABSMAX = 67.00;
  240. $mgbs = $MGBS = 0;
  241. $mgbsmax = $MGBSMAX = 13.00;
  242. $kbs = $KBS = 4.00;
  243. $kbsmax = $KBSMAX = 7.00;
  244. $nabs = $NABS = 0.50;
  245. $nabsmax = $NABSMAX = 1.50;
  246. }
  247. elseif ( ( 11.0 < $tecTemp ) && ( $tecTemp >= 30.0 ) ) {
  248. $cabs = $CABS = 0;
  249. $cabsmax = $CABSMAX = 68.00;
  250. $mgbs = $MGBS = 0;
  251. $mgbsmax = $MGBSMAX = 12.00;
  252. $kbs = $KBS = 4.00;
  253. $kbsmax = $KBSMAX = 7.00;
  254. $nabs = $NABS = 0.50;
  255. $nabsmax = $NABSMAX = 1.50;
  256. }
  257. elseif ( ( 30.0 < $tecTemp ) && ( $tecTemp >= 100000.0 ) ) {
  258. $cabs = $CABS = 0;
  259. $cabsmax = $CABSMAX = 70.00;
  260. $mgbs = $MGBS = 0;
  261. $mgbsmax = $MGBSMAX = 10.00;
  262. $kbs = $KBS = 3.00;
  263. $kbsmax = $KBSMAX = 6.00;
  264. $nabs = $NABS = 0.50;
  265. $nabsmax = $NABSMAX = 1.50;
  266. }
  267. // *** CALCULATED TEC MIN / MAX LEVELS
  268. $cabs_min = $cabs;
  269. $cabs_max = $cabsmax;
  270. $mgbs_min = $mgbs;
  271. $mgbs_max = $mgbsmax;
  272. $kbs_min = $kbs;
  273. $kbs_max = $kbsmax;
  274. $nabs_min = $nabs;
  275. $nabs_max = $nabsmax;
  276. $albs_min = "0";
  277. $albs_max = "0.5";
  278. // *** CALCULATED TEC LEVELS
  279. $cabs_tec = $ca_mehlick3 * $tec * 100;
  280. $mgbs_tec = $mg_mehlick3 * $tec * 100;
  281. $kbs_tec = $k_mehlick3 * $tec * 100;
  282. $nabs_tec = $na_mehlick3 * $tec * 100;
  283. $albs_tec = $al_mehlick3 * $tec * 100;
  284. // *** CALCULATED PPM FROM MEQ
  285. $BS_ca_ppm = $ca_mehlick3 * 200;
  286. $BS_mg_ppm = $mg_mehlick3 * 120;
  287. $BS_k_ppm = $k_mehlick3 * 390;
  288. $BS_na_ppm = $na_mehlick3 * 230;
  289. $BS_al_ppm = $al_mehlick3 * 90;
  290. /* ********* ADD BASE SATURATION CALCULATION HERE ********* */
  291. /* ********* END ********* */
  292. /*
  293. NOTES:
  294. will need to add rows in mysql to save data that has been calculated above.
  295. */
  296. // Check connection
  297. if (mysqli_connect_errno())
  298. {
  299. echo "Failed to connect to MySQL: " . mysqli_connect_error();
  300. }
  301. $sql = mysqli_query($con, "INSERT into `soil_records`
  302. (
  303. date,
  304. email,
  305. client_name,
  306. site_address,
  307. state_postcode,
  308. analysis_type,
  309. lab_no,
  310. batch_no,
  311. sample_id,
  312. site_id,
  313. crop_type,
  314. soil_type,
  315. date_sampled,
  316. tec,
  317. cec,
  318. texture,
  319. gravel,
  320. colour,
  321. NO3_N,
  322. NH3_N,
  323. p_mehlick,
  324. p_bray2,
  325. p_morgan,
  326. k_morgan,
  327. ca_morgan,
  328. mg_morgan,
  329. na_morgan,
  330. ch_h2o,
  331. ocarbon,
  332. omatter,
  333. fe,
  334. ec,
  335. ph_cacl2,
  336. ph_h2o,
  337. paramag,
  338. s_morgan,
  339. b_cacl2,
  340. mn_dtpa,
  341. zn_dtpa,
  342. fe_dtpa,
  343. cu_dtpa,
  344. al,
  345. sl_cacl2,
  346. m_dtpa,
  347. co_dtpa,
  348. se,
  349. ca_mehlick3,
  350. BS_ca_ppm,
  351. mg_mehlick3,
  352. BS_mg_ppm,
  353. k_mehlick3,
  354. BS_k_ppm,
  355. na_mehlick3,
  356. BS_na_ppm,
  357. al_mehlick3,
  358. BS_al_ppm,
  359. BS_ca2,
  360. BS_mg2,
  361. BS_k,
  362. BS_na,
  363. BS_al3,
  364. BS_h,
  365. cabs_min,
  366. cabs_max,
  367. mgbs_min,
  368. mgbs_max,
  369. kbs_min,
  370. kbs_max,
  371. nabs_min,
  372. nabs_max,
  373. albs_min,
  374. albs_max,
  375. ca_mg_ratio,
  376. rand
  377. ) VALUES (
  378. '" . $date . "',
  379. '" . $email . "',
  380. '" . $client_name . "',
  381. '" . $site_address . "',
  382. '" . $state_postcode . "',
  383. '" . $analysis_type . "',
  384. '" . $lab_no . "',
  385. '" . $batch_no . "',
  386. '" . $sample_id . "',
  387. '" . $site_id . "',
  388. '" . $crop_type . "',
  389. '" . $soil_type . "',
  390. '" . $date_sampled . "',
  391. '" . $tec . "',
  392. '" . $cec . "',
  393. IF('" . $texture . "'='',NULL,'" . $texture . "'),
  394. IF('" . $gravel . "'='',NULL,'" . $gravel . "'),
  395. IF('" . $colour . "'='',NULL,'" . $colour . "'),
  396. '" . $NO3_N . "',
  397. '" . $NH3_N . "',
  398. '" . $p_mehlick . "',
  399. '" . $p_bray2 . "',
  400. '" . $p_morgan . "',
  401. '" . $k_morgan . "',
  402. '" . $ca_morgan . "',
  403. '" . $mg_morgan . "',
  404. '" . $na_morgan . "',
  405. '" . $ch_h2o . "',
  406. '" . $ocarbon . "',
  407. '" . $omatter . "',
  408. '" . $fe . "',
  409. '" . $ec . "',
  410. '" . $ph_cacl2 . "',
  411. '" . $ph_h2o . "',
  412. IF('" . $paramag . "'='',NULL,'" . $paramag . "'),
  413. '" . $s_morgan . "',
  414. '" . $b_cacl2 . "',
  415. '" . $mn_dtpa . "',
  416. '" . $zn_dtpa . "',
  417. '" . $fe_dtpa . "',
  418. '" . $cu_dtpa . "',
  419. '" . $al . "',
  420. '" . $sl_cacl2 . "',
  421. '" . $m_dtpa . "',
  422. '" . $co_dtpa . "',
  423. '" . $se . "',
  424. '" . $ca_mehlick3 . "',
  425. '" . $BS_ca_ppm . "',
  426. '" . $mg_mehlick3 . "',
  427. '" . $BS_mg_ppm . "',
  428. '" . $k_mehlick3 . "',
  429. '" . $BS_k_ppm . "',
  430. '" . $na_mehlick3 . "',
  431. '" . $BS_na_ppm . "',
  432. '" . $al_mehlick3 . "',
  433. '" . $BS_al_ppm . "',
  434. '" . $cabs_tec . "',
  435. '" . $mgbs_tec . "',
  436. '" . $kbs_tec . "',
  437. '" . $nabs_tec . "',
  438. '" . $aluminium . "',
  439. '" . $hbs . "',
  440. '" . $cabs_min . "',
  441. '" . $cabs_max . "',
  442. '" . $mgbs_min . "',
  443. '" . $mgbs_max . "',
  444. '" . $kbs_min . "',
  445. '" . $kbs_max . "',
  446. '" . $nabs_min . "',
  447. '" . $nabs_max . "',
  448. '" . $albs_min . "',
  449. '" . $albs_max . "',
  450. '" . $ca_mgRatio . "',
  451. '" . $rand . "'
  452. )" );
  453. $insert_id = mysqli_insert_id($con);
  454. /*
  455. if ($sql === TRUE)
  456. {
  457. //echo "success"; //CHECKING
  458. // forward to results page if successfully inserts to database
  459. echo "<script>location.href = '[[~32]]?rand=" . $rand . "&cid=" . $sample_id . "&rid=" . $insert_id . "&stid=" .$crop_type . "';</script>";
  460. } else {
  461. die(mysqli_error($con)); // TODO: better error handling
  462. //echo "User Profile incorrect";
  463. }
  464. */
  465. ?>
  466. <table style="width:50%">
  467. <tr>
  468. <th style="width:25%">Element</th>
  469. <th style="width:75%">Results</th>
  470. </tr>
  471. <tr>
  472. <td> Date </td>
  473. <td> <?php echo $date; ?> </td>
  474. </tr>
  475. <tr>
  476. <td> Email </td>
  477. <td> <?php echo $email; ?> </td>
  478. </tr>
  479. <tr>
  480. <td> Client </td>
  481. <td> <?php echo $client_name; ?> </td>
  482. </tr>
  483. <tr>
  484. <td> Address </td>
  485. <td> <?php echo $site_address; ?> </td>
  486. </tr>
  487. <tr>
  488. <td> State </td>
  489. <td> <?php echo $state_postcode; ?> </td>
  490. </tr>
  491. <tr>
  492. <td> Analysis </td>
  493. <td> <?php echo $analysis_type; ?> </td>
  494. </tr>
  495. <tr>
  496. <td> Lab # </td>
  497. <td> <?php echo $lab_no; ?> </td>
  498. </tr>
  499. <tr>
  500. <td> Batch </td>
  501. <td> <?php echo $batch_no; ?> </td>
  502. </tr>
  503. <tr>
  504. <td> Sample ID </td>
  505. <td> <?php echo $sample_id; ?> </td>
  506. </tr>
  507. <tr>
  508. <td> Site ID </td>
  509. <td> <?php echo $site_id; ?> </td>
  510. </tr>
  511. <tr>
  512. <td> Crop Type </td>
  513. <td> <?php echo $crop_type; ?> </td>
  514. </tr>
  515. <tr>
  516. <td> Soil Type </td>
  517. <td> <?php echo $soil_type; ?> </td>
  518. </tr>
  519. <tr>
  520. <td> Date Sampled </td>
  521. <td> <?php echo $date_sampled; ?> </td>
  522. </tr>
  523. <tr>
  524. <td> TEC </td>
  525. <td> <?php echo $tecTemp; ?> </td>
  526. </tr>
  527. <tr>
  528. <td> CEC </td>
  529. <td> <?php echo $cec; ?> </td>
  530. </tr>
  531. <tr>
  532. <td> Texture </td>
  533. <td> <?php echo $texture; ?> </td>
  534. </tr>
  535. <tr>
  536. <td> Gravel </td>
  537. <td> <?php echo $gravel; ?> </td>
  538. </tr>
  539. <tr>
  540. <td> Colour </td>
  541. <td> <?php echo $colour; ?> </td>
  542. </tr>
  543. <tr>
  544. <td> N03_Nitrogen </td>
  545. <td> <?php echo $NO3_N; ?> </td>
  546. </tr>
  547. <tr>
  548. <td> NH3_Nitrogen </td>
  549. <td> <?php echo $NH3_N; ?> </td>
  550. </tr>
  551. <tr>
  552. <td> P Mehlick </td>
  553. <td> <?php echo $p_mehlick; ?> </td>
  554. </tr>
  555. <tr>
  556. <td> P Bray2</td>
  557. <td> <?php echo $p_bray2; ?> </td>
  558. </tr>
  559. <tr>
  560. <td> P Morgan</td>
  561. <td> <?php echo $p_morgan; ?> </td>
  562. </tr>
  563. <tr>
  564. <td> K Morgan</td>
  565. <td> <?php echo $k_morgan; ?> </td>
  566. </tr>
  567. <tr>
  568. <td> Ca Morgan</td>
  569. <td> <?php echo $ca_morgan; ?> </td>
  570. </tr>
  571. <tr>
  572. <td> Mg Morgan</td>
  573. <td> <?php echo $mg_morgan; ?> </td>
  574. </tr>
  575. <tr>
  576. <td> Na Morgan</td>
  577. <td> <?php echo $na_morgan; ?> </td>
  578. </tr>
  579. <tr>
  580. <td> Chloride</td>
  581. <td> <?php echo $ch_h2o; ?> </td>
  582. </tr>
  583. <tr>
  584. <td> Organic Carbon</td>
  585. <td> <?php echo $ocarbon; ?> </td>
  586. </tr>
  587. <tr>
  588. <td> Organic Matter</td>
  589. <td> <?php echo $omatter; ?> </td>
  590. </tr>
  591. <tr>
  592. <td> Iron</td>
  593. <td> <?php echo $fe; ?> </td>
  594. </tr>
  595. <tr>
  596. <td> EC</td>
  597. <td> <?php echo $ec; ?> </td>
  598. </tr>
  599. <tr>
  600. <td> ph cacl2</td>
  601. <td> <?php echo $ph_cacl2; ?> </td>
  602. </tr>
  603. <tr>
  604. <td> ph h2o</td>
  605. <td> <?php echo $ph_h2o; ?> </td>
  606. </tr>
  607. <tr>
  608. <td> Parameg</td>
  609. <td> <?php echo $paramag; ?> </td>
  610. </tr>
  611. <tr>
  612. <td> Sulphur</td>
  613. <td> <?php echo $s_morgan; ?> </td>
  614. </tr>
  615. <tr>
  616. <td> Boron</td>
  617. <td> <?php echo $b_cacl2; ?> </td>
  618. </tr>
  619. <tr>
  620. <td> Mananese</td>
  621. <td> <?php echo $mn_dtpa; ?> </td>
  622. </tr>
  623. <tr>
  624. <td> Zinc</td>
  625. <td> <?php echo $zn_dtpa; ?> </td>
  626. </tr>
  627. <tr>
  628. <td> Iron</td>
  629. <td> <?php echo $fe_dtpa; ?> </td>
  630. </tr>
  631. <tr>
  632. <td> Copper</td>
  633. <td> <?php echo $cu_dtpa; ?> </td>
  634. </tr>
  635. <tr>
  636. <td> Aluminium</td>
  637. <td> <?php echo $al; ?> </td>
  638. </tr>
  639. <tr>
  640. <td> Silicoln</td>
  641. <td> <?php echo $sl_cacl2; ?> </td>
  642. </tr>
  643. <tr>
  644. <td> Moly</td>
  645. <td> <?php echo $m_dtpa; ?> </td>
  646. </tr>
  647. <tr>
  648. <td> Colbalt</td>
  649. <td> <?php echo $co_dtpa; ?> </td>
  650. </tr>
  651. <tr>
  652. <td> Selenium</td>
  653. <td> <?php echo $se; ?> </td>
  654. </tr>
  655. <tr>
  656. <td> Ca</td>
  657. <td> <?php echo $ca_mehlick3; ?> </td>
  658. </tr>
  659. <tr>
  660. <td> Ca ppm</td>
  661. <td> <?php echo $BS_ca_ppm; ?> </td>
  662. </tr>
  663. <tr>
  664. <td> Mg</td>
  665. <td> <?php echo $mg_mehlick3; ?> </td>
  666. </tr>
  667. <tr>
  668. <td> Mg ppm</td>
  669. <td> <?php echo $BS_mg_ppm; ?> </td>
  670. </tr>
  671. <tr>
  672. <td> K</td>
  673. <td> <?php echo $k_mehlick3; ?> </td>
  674. </tr>
  675. <tr>
  676. <td> K ppm</td>
  677. <td> <?php echo $BS_k_ppm; ?> </td>
  678. </tr>
  679. <tr>
  680. <td> Na</td>
  681. <td> <?php echo $na_mehlick3; ?> </td>
  682. </tr>
  683. <tr>
  684. <td> Na ppm</td>
  685. <td> <?php echo $BS_na_ppm; ?> </td>
  686. </tr>
  687. <tr>
  688. <td> Al</td>
  689. <td> <?php echo $al_mehlick3; ?> </td>
  690. </tr>
  691. <tr>
  692. <td> Al ppm</td>
  693. <td> <?php echo $BS_al_ppm; ?> </td>
  694. </tr>
  695. <tr>
  696. <td> CA</td>
  697. <td> <?php echo $cabs_tec; ?> </td>
  698. </tr>
  699. <tr>
  700. <td> MG</td>
  701. <td> <?php echo $mgbs_tec; ?> </td>
  702. </tr>
  703. <tr>
  704. <td> K</td>
  705. <td> <?php echo $kbs_tec; ?> </td>
  706. </tr>
  707. <tr>
  708. <td> NA</td>
  709. <td> <?php echo $nabs_tec; ?> </td>
  710. </tr>
  711. <tr>
  712. <td> AL</td>
  713. <td> <?php echo $aluminium; ?> </td>
  714. </tr>
  715. <tr>
  716. <td> H</td>
  717. <td> <?php echo $hbs; ?> </td></tr>
  718. <tr>
  719. <td> CA_min</td>
  720. <td> <?php echo $cabs_min; ?> </td>
  721. </tr>
  722. <tr>
  723. <td> CA_max</td>
  724. <td> <?php echo $cabs_max; ?> </td>
  725. </tr>
  726. <tr>
  727. <td> MG_min</td>
  728. <td> <?php echo $mgbs_min; ?> </td>
  729. </tr>
  730. <tr>
  731. <td> MG_max</td>
  732. <td> <?php echo $mgbs_max; ?> </td>
  733. </tr>
  734. <tr>
  735. <td> K_min</td>
  736. <td> <?php echo $kbs_min; ?> </td>
  737. </tr>
  738. <tr>
  739. <td> K_max</td>
  740. <td> <?php echo $kbs_max; ?> </td>
  741. </tr>
  742. <tr>
  743. <td> NA_min</td>
  744. <td> <?php echo $nabs_min; ?> </td>
  745. </tr>
  746. <tr>
  747. <td> NA_max</td>
  748. <td> <?php echo $nabs_max; ?> </td>
  749. </tr>
  750. <tr>
  751. <td> AL_min</td>
  752. <td> <?php echo $albs_min; ?> </td>
  753. </tr>
  754. <tr>
  755. <td> AL_max</td>
  756. <td> <?php echo $albs_max; ?> </td>
  757. </tr>
  758. <tr>
  759. <td> Rand #</td>
  760. <td> <?php echo $rand; ?> </td>
  761. </tr>
  762. </table>