按年份搜索日期(仅限'日期',而不是时间戳或其他),PHP通过传递来自变量

时间:2015-03-03 23:13:31

标签: php mysql database date

所以我在创建一个打印选定年份结果的搜索功能时遇到了问题。用户基本上选择他们希望查看当年发生的所有任务的年份。

我尝试了很多功能,而且我还在学习myslqi,所以我为mysql目前没有这个*而道歉。

这是我到目前为止所得到的,我没有收到任何错误,我没有收到任何错误,我只是没有得到任何结果。

这是用户选择他们想要的年份的html;

我已将代码缩减以显示重要部分;

首先,这里是html年份选择:

<table>
<div class="container-fluid">
<form>

<div class="btn-group btn-group-justified" role="group" aria-label="..." name="year" id="year" onclick="showYear(this.value)" class="form-control">
  <div class="btn-group btn-group-lg" role="group" value="2015">
    <button type="button" class="btn btn-default" value="2015">2015</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2014">
    <button type="button" class="btn btn-default" value="2014">2014</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2013">
    <button type="button" class="btn btn-default" value="2013">2013</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2012">
    <button type="button" class="btn btn-default" value="2012">2012</button>
  </div>
</div>
<div class="btn-group btn-group-justified" role="group" aria-label="..." name="year" id="year" onclick="showYear(this.value)" class="form-control">
  <div class="btn-group btn-group-lg" role="group" value="2011">
    <button type="button" class="btn btn-default" value="2011">2011</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2010">
    <button type="button" class="btn btn-default" value="2010">2010</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2009">
    <button type="button" class="btn btn-default" value="2009">2009</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2008">
    <button type="button" class="btn btn-default" value="2008">2008</button>
  </div>
</div>
<div class="btn-group btn-group-justified" role="group" aria-label="..." name="year" id="year" onclick="showYear(this.value)" class="form-control">
    <div class="btn-group btn-group-lg" role="group" value="2007">
        <button type="button" class="btn btn-default" value="2007">2007</button>
    </div>
  <div class="btn-group btn-group-lg" role="group" value="2006">
        <button type="button" class="btn btn-default" value="2006">2006</button>
    </div>
  <div class="btn-group btn-group-lg" role="group" value="2005">
        <button type="button" class="btn btn-default" value="2005">2005</button>
    </div>
   <div class="btn-group btn-group-lg" role="group" value="2004">
        <button type="button" class="btn btn-default" value="2004">2004</button>
    </div>
</div>
<div class="btn-group btn-group-justified" role="group" aria-label="..." name="year" id="year"onclick="showYear(this.value)" class="form-control">
    <div class="btn-group btn-group-lg" role="group" value="2003">
        <button type="button" class="btn btn-default" value="2003">2003</button>
    </div>
   <div class="btn-group btn-group-lg" role="group" value="2002">
        <button type="button" class="btn btn-default" value="2002">2002</button>
    </div>
    <div class="btn-group btn-group-lg" role="group" value="2001">
        <button type="button" class="btn btn-default" value="2001">2001</button>
    </div>
    <div class="btn-group btn-group-lg" role="group" value="2000">
        <button type="button" class="btn btn-default" value="2000">2000</button>
    </div>
</div>

</form>
</table>

<div class="container-fluid" id="txtHint"><b></b></div>

本页顶部有一个脚本可以处理并传递此内容:

<script>
    function showYear(str) {
        if (str == "") {
            document.getElementById("txtHint").innerHTML = "";
            return;
        } else { 
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {
                // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","getYear.php?year="+str,true);
            xmlhttp.send();
        }
    }
    </script>

这是php:

<html>

<body>

<div class="container-fluid"> <!-- Table Headers -->
<table class="table table-hover table-responsive">
    <thead>
        <tr>
            <th>Series:</th><th>Title:</th><th>Date:</th><th>Type:</th><th>House Location:</th><th>Housemates:</th>
            <br>
        </tr>
    </thead>      
</div>

<?php
$date = intval($_GET['year']);

include('dbconnect.php');

$sql ="SELECT * FROM tasks WHERE YEAR(date) = '$date' ";

$result = mysql_query($sql);

if (!$result)

echo "An error occurred: ".mysql_error();

else

while ($row=mysql_fetch_assoc($result))
 {

    $taskid = $row['taskid'];

    echo '<tr>';
    echo '<td>';

    echo '<button type="button" name="delete_row" id="delete_row" class="close">';
    echo '<a href="taskResult.php?id='. $taskid .'">';
    echo '<span title="View" aria-hidden="true" class="glyphicon glyphicon-search">';
    echo '</span>';
    echo '<span class="sr-only">';
    echo 'View';
    echo '</span>';
    echo '</button>';
    echo '</a>';
    echo '</td>';
    echo "<td>" . $row['title'] . "</td>";
    echo "<td>" . $row['date'] . "</td>";
    echo "<td>" . $row['type'] . "</td>";
    echo "<td>" . $row['houseLocation'] . "</td>";
    echo "<td>" . $row['housemates'] . "</td>";
    echo "</tr>";
}
echo "</table>";
mysql_close();
?>

目前我只是在任何选择上打印表头?

非常感谢任何帮助。这是一个非常小的项目,我是一个非常新的编码器。

2 个答案:

答案 0 :(得分:0)

第一件事就是跳出来的是你在sql中将数字与字符串进行比较。

$sql ="SELECT * FROM tasks WHERE YEAR(date) = '$date' ;

通过将$ date包装在引号内,它变为字符串值。 YEAR(日期)返回的数字年份值永远不会与字符串值匹配。

即。 2015年!=&#39; 2015&#39;

答案 1 :(得分:0)

在你JS:

xmlhttp未定义。尝试在var之前添加xmlhttp,例如:

var xmlhttp = new XMLHttpRequest(); 

var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

OR

var xmlhttp区块的第一行添加else

并且您的onclick方法已添加到html中的错误div中,因为它应添加到按钮中:

用这个来回复HTML:

<table>
<div class="container-fluid">
<form>

<div class="btn-group btn-group-justified" role="group" aria-label="..." name="year" id="year"  class="form-control">
  <div class="btn-group btn-group-lg" role="group" value="2015">
    <button type="button" class="btn btn-default" value="2015" onclick="showYear(this.value)">2015</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2014">
    <button type="button" class="btn btn-default" value="2014" onclick="showYear(this.value)">2014</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2013">
    <button type="button" class="btn btn-default" value="2013" onclick="showYear(this.value)">2013</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2012">
    <button type="button" class="btn btn-default" value="2012" onclick="showYear(this.value)">2012</button>
  </div>
</div>
<div class="btn-group btn-group-justified" role="group" aria-label="..." name="year" id="year" class="form-control">
  <div class="btn-group btn-group-lg" role="group" value="2011">
    <button type="button" class="btn btn-default" value="2011" onclick="showYear(this.value)">2011</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2010">
    <button type="button" class="btn btn-default" value="2010" onclick="showYear(this.value)">2010</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2009">
    <button type="button" class="btn btn-default" value="2009" onclick="showYear(this.value)">2009</button>
  </div>
  <div class="btn-group btn-group-lg" role="group" value="2008">
    <button type="button" class="btn btn-default" value="2008" onclick="showYear(this.value)">2008</button>
  </div>
</div>
<div class="btn-group btn-group-justified" role="group" aria-label="..." name="year" id="year"  class="form-control">
    <div class="btn-group btn-group-lg" role="group" value="2007">
        <button type="button" class="btn btn-default" value="2007" onclick="showYear(this.value)">2007</button>
    </div>
  <div class="btn-group btn-group-lg" role="group" value="2006">
        <button type="button" class="btn btn-default" value="2006" onclick="showYear(this.value)">2006</button>
    </div>
  <div class="btn-group btn-group-lg" role="group" value="2005">
        <button type="button" class="btn btn-default" value="2005" onclick="showYear(this.value)">2005</button>
    </div>
   <div class="btn-group btn-group-lg" role="group" value="2004">
        <button type="button" class="btn btn-default" value="2004" onclick="showYear(this.value)">2004</button>
    </div>
</div>
<div class="btn-group btn-group-justified" role="group" aria-label="..." name="year" id="year" class="form-control">
    <div class="btn-group btn-group-lg" role="group" value="2003">
        <button type="button" class="btn btn-default" value="2003" onclick="showYear(this.value)">2003</button>
    </div>
   <div class="btn-group btn-group-lg" role="group" value="2002">
        <button type="button" class="btn btn-default" value="2002" onclick="showYear(this.value)">2002</button>
    </div>
    <div class="btn-group btn-group-lg" role="group" value="2001" >
        <button type="button" class="btn btn-default" value="2001" onclick="showYear(this.value)">2001</button>
    </div>
    <div class="btn-group btn-group-lg" role="group" value="2000">
        <button type="button" class="btn btn-default" value="2000" onclick="showYear(this.value)">2000</button>
    </div>
</div>

</form>
</table>

<div class="container-fluid" id="txtHint"><b></b></div>