get_chapter_children.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. require_once '../path.php';
  3. $dns = "sqlite:"._FILE_DB_PALI_TOC_;
  4. $dbh_toc = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
  5. $dbh_toc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  6. $dns = "sqlite:"._FILE_DB_PALITEXT_;
  7. $dbh_pali_text = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
  8. $dbh_pali_text->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  9. $dns = "sqlite:"._FILE_DB_RESRES_INDEX_;
  10. $dbh_res = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
  11. $dbh_res->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  12. if(isset($_GET["book"])){
  13. $book = (int)$_GET["book"];
  14. }
  15. if(isset($_GET["para"])){
  16. $para = (int)$_GET["para"];
  17. }
  18. $query = "SELECT chapter_len FROM pali_text WHERE book = ? and paragraph = ?";
  19. $stmt = $dbh_pali_text->prepare($query);
  20. $stmt->execute(array($book,$para));
  21. $paraInfo = $stmt->fetch(PDO::FETCH_ASSOC);
  22. if($paraInfo){
  23. $query = "SELECT level FROM pali_text WHERE book = ? and (paragraph between ? and ?) and level<8 order by level ASC limit 0,1";
  24. $stmt = $dbh_pali_text->prepare($query);
  25. $stmt->execute(array($book,$para+1,$para+(int)$paraInfo["chapter_len"]-1));
  26. $paraMax = $stmt->fetch(PDO::FETCH_ASSOC);
  27. if($paraMax){
  28. $query = "SELECT book, paragraph as para, level , toc as title FROM pali_text WHERE book = ? and (paragraph between ? and ?) and level = ? limit 0,1000";
  29. $stmt = $dbh_pali_text->prepare($query);
  30. $stmt->execute(array($book,$para,$para+$paraInfo["chapter_len"],$paraMax["level"]));
  31. $paraList = $stmt->fetchAll(PDO::FETCH_ASSOC);
  32. foreach ($paraList as $key => $value) {
  33. # 查进度
  34. $query = "SELECT lang, all_trans from progress_chapter where book=? and para=?";
  35. $stmt = $dbh_toc->prepare($query);
  36. $sth_toc = $dbh_toc->prepare($query);
  37. $sth_toc->execute(array($value["book"],$value["para"]));
  38. $paraProgress = $sth_toc->fetchAll(PDO::FETCH_ASSOC);
  39. $paraList[$key]["progress"]=$paraProgress;
  40. #查标题
  41. if(isset($_GET["lang"])){
  42. $query = "SELECT title from 'index' where book=? and paragraph=? and language=?";
  43. $stmt = $dbh_res->prepare($query);
  44. $sth_title = $dbh_res->prepare($query);
  45. $sth_title->execute(array($value["book"],$value["para"],$_GET["lang"]));
  46. $trans_title = $sth_title->fetch(PDO::FETCH_ASSOC);
  47. if($trans_title){
  48. $paraList[$key]["trans_title"]=$trans_title['title'];
  49. }
  50. }
  51. }
  52. echo json_encode($paraList, JSON_UNESCAPED_UNICODE);
  53. }
  54. else{
  55. echo json_encode(array(), JSON_UNESCAPED_UNICODE);
  56. }
  57. }
  58. else{
  59. echo json_encode(array(), JSON_UNESCAPED_UNICODE);
  60. }
  61. ?>