php - MySQL 日期查询不起作用

标签 php mysql sql date

我正在关注 w3schools 中的这个示例从mysql数据库获取数据并将结果显示在页面上。

这是我更新的代码:

HTML:

<html>
<head>
<script>
function showresult(str) {
  if (str=="") {
    document.getElementById("txtHint").innerHTML="";
    return;
  } 
  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","getquery.php?q="+str,true);
  xmlhttp.send();
}
</script>
</head>
<body>

<form>
<select name="Reg Date" onchange="showresult(this.value)">
<option value="">Select Date:</option>
<option value="1">30/07/2014</option>
<option value="2">29/07/2014</option>
<option value="3">28/07/2014</option>
</select>
</form>
<br>
<div id="txtHint"><b>Result here.</b></div>

</body>
</html>

PHP:

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

$con = mysqli_connect('localhost','root','password','mydb');
if (!$con) {
  die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM customers WHERE reg_date = '".$q."'";
$result = mysqli_query($con,$sql);

echo "<table border='1'>
<tr>
<th>Client Name</th>
<th>Registration Date</th>
</tr>";

while($row = mysqli_fetch_array($result)) {
  echo "<tr>";
  echo "<td>" . $row['client_name'] . "</td>";
  echo "<td>" . $row['reg_date'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysqli_close($con);
?>
  1. 当我选择任何日期时,什么都不会发生,直到我将选择语句 reg_date = 更改为 reg_date >=(带有大于号 > ),但这也会显示超出所选日期的日期的结果。

  2. 如何使用日期选择器来选择任何日期。

  3. 我还注意到,当我随机选择任何日期时,在显示结果之前会出现轻微的延迟或出现沙漏。我相信这是由于我在数据库中拥有的记录数量所致(查看超过 20K 条目)。

我很高兴有人能够帮助我或为我指明正确的方向,因为我是这方面的编码新手。

最佳答案

您应该尝试使用 STR_TO_DATE(string , format) 函数将常量转换为日期。例如,我的 MYSQL 实例无法正确地将字符串变量转换为日期。我认为它可以与位置设置相关。

$sql="SELECT * FROM customers WHERE reg_date = STR_TO_DATE('".$q."','%d/%m/%Y')";

关于php - MySQL 日期查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25162864/

相关文章:

php - 从 MySQL 表中选择所有列

mysql - SQL 如何统计单个评论在多个级别上的所有回复

php - MYSQL 查询列是否为空

php - WordPress wp-cli 生成错误 : "Call to undefined function getallheaders"

php - 忽略错误的好主意?

MySQL:可选择构建 Group Concat 字段

php - 在 SQL 中,我如何获得每个玩家的奖励总数

php - 尝试同时执行2个查询: only one works

php - 两个 mysql 查询似乎比一个查询快,任何人都知道如何在没有开销的情况下组合这些查询?

php - Mysql返回具有正确数据类型的数组