查询MySQL数据库检索无效结果

时间:2018-12-10 17:47:50

标签: mysql

我正在查询mysql数据库以从一个表返回作业,而从另一个表返回作业元数据。我有一个带有两个输入的表单,一个是title,第二个是location,因此用户可以查询标题或位置,或同时查询两者。当我输入title输入并将location留为空白时,我会高效地检索结果,但是当我也输入后一个输入时,只会再次检索相同的结果而没有任何变化。当我清空之前的输入时,我会收到意外的结果。表中的作业总数为460+,我检索的结果为数千,当我检查接收到的json对象时,所有数据都在460+之后重复,然后从头到尾,依此类推。我不知道怎么了。

我的基本需求是查询数据库并获得既没有输入又没有空的结果。

表格

<form action="" id="search_form">
   <input type="text"  class="job-search-inp job-title-inp" autocomplete="off" name="job_title" placeholder="Job Title, Company name">
   <input type="text"  class="job-search-inp job-type-inp" autocomplete="off" name="job_loc" placeholder="City or Country . . . ">
   <button  type="submit" id="submit_btn"> <i class="fas fa-search"></i> </button>
</form>

客户端

var searchForm = document.querySelector("#search_form");
searchForm.addEventListener("submit", function(e) {
  e.preventDefault();
  var json = new Globals().toJSONString(this);
  fetch("/fetch_jobs", {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: json
  }).then(function(t) {
    t.text().then(function(res) {
      console.log(JSON.parse(res));
      populateJobs(JSON.parse(res));
    })
  })
})

带有查询的服务器端脚本

app.post("/fetch_jobs", function(req, res) {
  new AccessAPI(req.body, res).retData();
})

function AccessAPI(data, response) {

  this.retData = function() {
    console.log(data['job_title'], data['job_loc']);

    ms_connect.query("
SELECT `companies_jobs`.*
     , `companies`.`name`
     , `companies`.`location`
     , `companies`.`image` 
  FROM `companies`
     , `companies_jobs` 
 WHERE `companies_jobs`.`comp_fk` = `companies`.`id` 
   AND CONVERT(`companies_jobs`.`job_title` USING utf8) LIKE '%" + data['job_title'] + "%' 
    OR CONVERT(`companies_jobs`.`job_loc` USING utf8) LIKE '" + data['job_title'] + "%' "
, function(err, rows) {
      if (err) {
        throw err;
      } else {
        response.send(rows);
      }
    })
  }
}

0 个答案:

没有答案