loadsaverempres.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. header('Content-Type: application/json; charset=utf-8');
  3. require('include/glob.php');
  4. require('include/muoribenejson.php');
  5. require('include/sessionstart.php');
  6. require('include/myconn.php');
  7. require('include/getadmacc.php');
  8. if ($account['Level']=='guest')
  9. muoribene('Sorry, you are not authorized.',true);
  10. use function mysqli_real_escape_string as myesc;
  11. function nulltonull($arr) {
  12. $newarr=array();
  13. foreach ($arr as $key=>$val)
  14. if (is_null($val))
  15. if ($key!='AndOr')
  16. $newarr[$key]='null';
  17. else
  18. $newarr[$key]='AND';
  19. else
  20. $newarr[$key]=$val;
  21. return($newarr);
  22. }
  23. if (array_key_exists('act',$_POST)) {
  24. if ($_POST['act']=='load' && array_key_exists('pid',$_POST) && preg_match('/^[0-9]+$/',$_POST['pid'])===1) {
  25. $res=mysqli_query($link,'SELECT * FROM PresFiltConds WHERE PresID='.$_POST['pid'].' ORDER BY Pos ASC')
  26. or muoribene(mysqli_error($link),true);
  27. $buf=array('f'=>array(),'o'=>array());
  28. while ($row=mysqli_fetch_assoc($res))
  29. $buf['f'][]=nulltonull($row);
  30. $res=mysqli_query($link,'SELECT * FROM PresOrdConds WHERE PresID='.$_POST['pid'].' ORDER BY Pos ASC')
  31. or muoribene(mysqli_error($link),true);
  32. while ($row=mysqli_fetch_assoc($res))
  33. $buf['o'][]=nulltonull($row);
  34. echo(json_encode($buf));
  35. } elseif ($_POST['act']=='save' && array_key_exists('txt',$_POST)) {
  36. $fi=-1;
  37. $oi=-1;
  38. $fqueries=array();
  39. $oqueries=array();
  40. foreach ($_POST as $key=>$val) {
  41. if (preg_match('/^openpar-\d+$/',$key)===1) {
  42. $fi++;
  43. if ($val=='null')
  44. $val='NULL';
  45. else
  46. $val="'".myesc($link,$val)."'";
  47. $fqueries[$fi]['OpenPar']=$val;
  48. }
  49. if (preg_match('/^fieldsel-\d+$/',$key)===1) {
  50. $fqueries[$fi]['Field']="'".myesc($link,$val)."'";
  51. }
  52. if (preg_match('/^condsel-\d+$/',$key)===1) {
  53. $fqueries[$fi]['Cond']="'".myesc($link,$val)."'";
  54. }
  55. if (preg_match('/^valuesel-\d+$/',$key)===1) {
  56. $fqueries[$fi]['ValueSel']="'".myesc($link,$val)."'";
  57. }
  58. if (preg_match('/^valueinp-\d+$/',$key)===1) {
  59. $fqueries[$fi]['ValueInp']="'".myesc($link,$val)."'";
  60. }
  61. if (preg_match('/^closepar-\d+$/',$key)===1) {
  62. if ($val=='null')
  63. $val='NULL';
  64. else
  65. $val="'".myesc($link,$val)."'";
  66. $fqueries[$fi]['ClosePar']=$val;
  67. }
  68. if (preg_match('/^andor-\d+$/',$key)===1) {
  69. $fqueries[$fi]['AndOr']="'".myesc($link,$val)."'";
  70. }
  71. if (preg_match('/^ordfieldsel-\d+$/',$key)===1) {
  72. $oi++;
  73. $oqueries[$oi]['Field']="'".myesc($link,$val)."'";
  74. }
  75. if (preg_match('/^ascdesc-\d+$/',$key)===1) {
  76. $oqueries[$oi]['Sort']="'".myesc($link,$val)."'";
  77. }
  78. }
  79. // print_r($fqueries).N;
  80. // print_r($oqueries).N;
  81. if (array_key_exists('pid',$_POST) && preg_match('/^[0-9]+$/',$_POST['pid'])===1) {
  82. $pid=$_POST['pid'];
  83. mysqli_query($link,'DELETE FROM PresFiltConds WHERE PresID='.$pid)
  84. or muoribene(mysqli_error($link),true);
  85. mysqli_query($link,'DELETE FROM PresOrdConds WHERE PresID='.$pid)
  86. or muoribene(mysqli_error($link),true);
  87. mysqli_query($link,'UPDATE Presets SET Name=\''.myesc($link,$_POST['txt']).'\' WHERE ID='.$pid)
  88. or muoribene(mysqli_error($link),true);
  89. } else {
  90. mysqli_query($link,'INSERT INTO Presets SET Name=\''.myesc($link,$_POST['txt']).'\'')
  91. or muoribene(mysqli_error($link),true);
  92. $pid=mysqli_insert_id($link);
  93. echo('{ "pid": '.$pid.' }'.N);
  94. }
  95. $fi=0;
  96. foreach ($fqueries as $row) {
  97. $fi++;
  98. $query='INSERT INTO PresFiltConds SET PresID='.$pid.', OpenPar='.$row['OpenPar'].', Field='.$row['Field'].', Cond='.$row['Cond'].', ';
  99. if (array_key_exists('ValueSel',$row))
  100. $query.='ValueSel='.$row['ValueSel'].', ';
  101. if (array_key_exists('ValueInp',$row))
  102. $query.='ValueInp='.$row['ValueInp'].', ';
  103. $query.='ClosePar='.$row['ClosePar'];
  104. if (array_key_exists('AndOr',$row))
  105. $query.=', AndOr='.$row['AndOr'];
  106. $query.=', Pos='.$fi;
  107. // echo($query.N);
  108. mysqli_query($link,$query)
  109. or muoribene(mysqli_error($link),true);
  110. }
  111. $oi=0;
  112. foreach ($oqueries as $row) {
  113. $oi++;
  114. $query='INSERT INTO PresOrdConds SET PresID='.$pid.', Field='.$row['Field'].', Sort='.$row['Sort'].', Pos='.$oi;
  115. // echo($query.N);
  116. mysqli_query($link,$query)
  117. or muoribene(mysqli_error($link),true);
  118. }
  119. } elseif ($_POST['act']=='remove' && array_key_exists('pid',$_POST) && preg_match('/^[0-9]+$/',$_POST['pid'])===1) {
  120. $pid=$_POST['pid'];
  121. $query='DELETE FROM PresFiltConds WHERE PresID='.$pid;
  122. mysqli_query($link,$query)
  123. or muoribene(mysqli_error($link),true);
  124. $query='DELETE FROM PresOrdConds WHERE PresID='.$pid;
  125. mysqli_query($link,$query)
  126. or muoribene(mysqli_error($link),true);
  127. $query='DELETE FROM Presets WHERE ID='.$pid;
  128. mysqli_query($link,$query)
  129. or muoribene(mysqli_error($link),true);
  130. }
  131. }
  132. mysqli_close($link);
  133. exit(0);
  134. ?>