2014-06-20 79 views
1

我试图在特定日期范围内获取表格时似乎遇到问题。这是我的PHP代码。我尝试使用BETWEEN和< =来获取日期范围,但它似乎不起作用。当我将结果打印到控制台时,我只是得到一个Uncaught SyntaxError:意外的数字。有什么建议么?MySQL和PHP的日期范围

if($_POST['subdate'] != "") 
    { 

     $sdate = dateClean($_POST['subdate']); 
     $edate = dateClean($_POST['subdateend']); 
     if($checkWhereVar==0) 
     { 

      if($_POST['subdateend'] != "") 
      { 

       $longQuery.= "SubmissionDate >= '".$sdate."' AND SubmissionDate <= '".$edate.""; 
       echo ("<script>console.log('$longQuery')</script>"); 
      } 
      else{ 

       $date = date('Y/m/d H:i:s'); 
       $edate = $date; 
       $longQuery.= "SubmissionDate >= '".$sdate."' AND SubmissionDate <= '".$edate.""; 

      } 

      //$longQuery.= " SubmissionDate BETWEEN = '".$sdate."'"; 
      $checkWhereVar = 1; 
     } 
     else 
     { 
      $date = date('Y/m/d H:i:s'); 
      $edate = $date; 
      echo ("<script>console.log('in sub date else')</script>"); 
      $longQuery.= "SubmissionDate >= '".$sdate."' AND SubmissionDate <= '".$edate.""; 
     } 
     $filter .= " Submission Date: <i>".$_POST['subdate']."</i>"; 
    } 
+0

**警告**你不应该滚动自己的SQL注入保护! –

+1

在执行并发布之前立即回显查询。 –

+0

“Uncaught SyntaxError”其中和全部细节。 – JakeGould

回答

0

这是很难没有看到脚本的其余部分来诊断,但似乎你的字符串连接可能会在这样行的一个因素:

$longQuery.= "SubmissionDate >= '".$sdate."' AND SubmissionDate <= '".$edate.""; 

在只需添加一个空格像这样的开始:

$longQuery.= " SubmissionDate >= '".$sdate."' AND SubmissionDate <= '".$edate.""; 

此外,你似乎在字符串的末尾缺少单引号。因此,只要做到这一点:

$longQuery.= " SubmissionDate >= '$sdate' AND SubmissionDate <= '$edate'"; 

当您使用双引号,你可以做字符串替换,所以你不必来连接这些行以.,每一个字符串显示出来。

也就是说,这里是我清理你的代码与上面提到的东西的每个实例解决。

if($_POST['subdate'] != "") 
    { 

     $sdate = dateClean($_POST['subdate']); 
     $edate = dateClean($_POST['subdateend']); 
     if($checkWhereVar==0) 
     { 

      if($_POST['subdateend'] != "") 
      { 

       $longQuery.= " SubmissionDate >= '$sdate' AND SubmissionDate <= '$edate'"; 
       echo ("<script>console.log('$longQuery')</script>"); 
      } 
      else{ 

       $date = date('Y/m/d H:i:s'); 
       $edate = $date; 
       $longQuery.= " SubmissionDate >= '$sdate' AND SubmissionDate <= '$edate'"; 

      } 

      //$longQuery.= " SubmissionDate BETWEEN = '$sdate'"; 
      $checkWhereVar = 1; 
     } 
     else 
     { 
      $date = date('Y/m/d H:i:s'); 
      $edate = $date; 
      echo ("<script>console.log('in sub date else')</script>"); 
      $longQuery.= " SubmissionDate >= '$sdate' AND SubmissionDate <= '$edate'"; 
     } 
     $filter .= " Submission Date: <i>".$_POST['subdate']."</i>"; 
    } 
+0

感谢这工作 – user3761203