term_get.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /*
  3. 查询term字典
  4. 输入单词列表
  5. 输出查到的结果
  6. */
  7. require_once "../path.php";
  8. require_once "../public/_pdo.php";
  9. require_once '../public/function.php';
  10. require_once '../ucenter/function.php';
  11. require_once '../channal/function.php';
  12. PDO_Connect("sqlite:"._FILE_DB_TERM_);
  13. $output = array();
  14. if(isset($_POST["words"])){
  15. $wordlist = json_decode($_POST["words"]);
  16. if($_POST["readonly"]=="false" && !empty($_POST["channal"])){
  17. $channal = explode(",",$_POST["channal"]);
  18. $channal_info = new Channal();
  19. $channal_owner = array();
  20. foreach ($channal as $key => $value) {
  21. # code...
  22. $info = $channal_info->getChannal($value);
  23. if($info){
  24. $channal_owner[$info["owner"]]=1;
  25. }
  26. }
  27. /* 创建一个填充了和params相同数量占位符的字符串 */
  28. $place_holders = implode(',', array_fill(0, count($channal), '?'));
  29. $owner_holders = implode(',', array_fill(0, count($channal_owner), '?'));
  30. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM term WHERE channal IN ($place_holders) OR owner IN ($owner_holders)";
  31. foreach ($channal_owner as $key => $value) {
  32. # code...
  33. $channal[] = $key;
  34. }
  35. $fetch = PDO_FetchAll($query,$channal);
  36. $userinfo = new UserInfo();
  37. $user = array();
  38. foreach ($channal_owner as $key => $value) {
  39. # code...
  40. $user[$key]=$userinfo->getName($key);
  41. }
  42. foreach ($fetch as $key => $value) {
  43. # code...
  44. $fetch[$key]["user"] = $user[$key];
  45. $output[] = $fetch[$key];
  46. }
  47. }
  48. else{
  49. foreach ($wordlist as $key => $value) {
  50. # code...
  51. $pali = $value->pali;
  52. $parm = array();
  53. $parm[] = $pali;
  54. $otherCase = "";
  55. if($value->channal != ""){
  56. $otherCase .= " channal = ? ";
  57. $parm[] = $value->channal;
  58. }
  59. if($value->editor != ""){
  60. if($otherCase != ""){
  61. $otherCase .= " OR ";
  62. }
  63. $otherCase .= " owner = ? ";
  64. $parm[] = $value->editor;
  65. }
  66. if($value->lang != ""){
  67. if($otherCase != ""){
  68. $otherCase .= " OR ";
  69. }
  70. $otherCase .= " language = ? ";
  71. $parm[] = $value->lang;
  72. }
  73. if($otherCase==""){
  74. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM term WHERE word = ? ";
  75. }
  76. else{
  77. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM term WHERE word = ? AND ( $otherCase )";
  78. }
  79. $fetch = PDO_FetchAll($query,$parm);
  80. $userinfo = new UserInfo();
  81. foreach ($fetch as $key => $value) {
  82. # code...
  83. $fetch[$key]["user"]=$userinfo->getName($value["owner"]);
  84. $output[] = $fetch[$key];
  85. }
  86. }
  87. }
  88. }
  89. echo json_encode($output, JSON_UNESCAPED_UNICODE);
  90. ?>