loadsavepres.php 3.9 KB

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