searchSolution.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. include('../conn_mysqli.php');
  3. include('../phpMode/rcodeMap.php');
  4. $key = $_POST['key'];
  5. $type = $_POST['type'] ? $_POST['type'] : 'all';
  6. // 设置 $page 的默认值为1,并限定取值范围在1-10之间
  7. $page = isset($_POST['page']) ? max(1, min(10, intval($_POST['page']))) : 1;
  8. // 设置 $limit 的默认值为20,并限定取值范围在1-100之间
  9. $limit = isset($_POST['limit']) ? max(1, min(100, intval($_POST['limit']))) : 20;
  10. $offset = ($page - 1) * $limit;
  11. header('Content-Type:text/json;charset=utf-8;');
  12. $resObj = array(
  13. 'rcode' => Rcode_OK,
  14. 'data' => "",
  15. 'msg' => 'ok'
  16. );
  17. try {
  18. set_time_limit(50);
  19. $conn = createConn();
  20. $sql = "";
  21. $stmt = null;
  22. if ($type == "all") {
  23. // 无条件全选
  24. if (!empty($key)) {
  25. // echo " \n php is low \n";
  26. $sql = 'SELECT news.id,news.remark,news.title as name,news.image,news.source,news.sourceType,n_type.type_key
  27. FROM mysql85931094_db.hfy_news as news , mysql85931094_db.hfy_news_type as n_type
  28. where news.type_id = n_type.type_id and news.title like \''.$key.'\' order by news.id desc limit ?,?';
  29. } else {
  30. // echo " \n fuck php \n";
  31. $sql = 'SELECT news.id,news.remark,news.title as name,news.image,news.source,news.sourceType,n_type.type_key
  32. FROM mysql85931094_db.hfy_news as news , mysql85931094_db.hfy_news_type as n_type
  33. where news.type_id = n_type.type_id order by news.id desc limit ?,?';
  34. }
  35. $stmt = mysqli_prepare($conn, $sql);
  36. mysqli_stmt_bind_param($stmt, "dd", $offset, $limit);
  37. } else {
  38. if (!empty($key)) {
  39. // echo " \n fuck php ? \n";
  40. $sql = 'SELECT
  41. news.id,news.remark,news.title as name,news.image,news.source,news.sourceType,n_type.type_key
  42. FROM mysql85931094_db.hfy_news as news ,
  43. mysql85931094_db.hfy_news_type as n_type
  44. where news.type_id = n_type.type_id and n_type.type_key = ? and news.title like \''.$key.'\'
  45. order by news.id desc limit ?,?';
  46. $stmt = mysqli_prepare($conn, $sql);
  47. mysqli_stmt_bind_param($stmt, "ssdd", $type, $key, $offset, $limit);
  48. } else {
  49. // echo " \n fuck fuck fuck \n";
  50. $sql = 'SELECT
  51. news.id,news.remark,news.title as name,news.image,news.source,news.sourceType,n_type.type_key
  52. FROM mysql85931094_db.hfy_news as news , mysql85931094_db.hfy_news_type as n_type
  53. where news.type_id = n_type.type_id and n_type.type_key = ?
  54. order by news.id desc limit ?,?';
  55. $stmt = mysqli_prepare($conn, $sql);
  56. mysqli_stmt_bind_param($stmt, "sdd", $type, $offset, $limit);
  57. }
  58. }
  59. mysqli_stmt_execute($stmt);
  60. $res = mysqli_stmt_get_result($stmt);
  61. while ($row = mysqli_fetch_assoc($res)) {
  62. $rs[] = $row;
  63. }
  64. mysqli_close($conn);
  65. $resObj['data'] = $rs;
  66. echo json_encode($resObj);
  67. }catch(Exception $e)
  68. {
  69. // echo 'Message: ' .$e->getMessage();
  70. $resObj['rcode'] = Rcode_ServerError;
  71. $resObj['msg'] = 'server error';
  72. echo json_encode($resObj);
  73. }