php - PHP从Mysql Query返回空值
问题描述
我使用相同的查询返回两个日期之间的一个整数值,它是列的总和
SQL查询:
SELECT SUM(TransactionAmount) FROM `sales` WHERE TransactionTime BETWEEN '2020-12-15' AND '2020-12-16'
在这个 PHP 代码中:
<?php
require 'config/db.php';
if(isset($_POST["searchinDate-btn"])){
$start_date = $_POST['startdate'];
$end_date = $_POST['enddate'];
$totalRev = "SELECT SUM(TransactionAmount) FROM `sales` WHERE TransactionTime BETWEEN '$start_date' AND '$end_date'";
$totalRevQ = mysqli_query($conn, $totalRev);
$rev = mysqli_fetch_assoc($totalRevQ);
$revenue = $rev[0];
}
?>
(附加)HTML代码:
<form action="Dashboard.php" method="POST">
<div class="dateselect">
<label for="start-date">Start Date: </label>
<input type="date" id="start-date" name="startdate" value="">
<label for="start-date"> - - End Date: </label>
<input type="date" id="end-date" name="enddate" value="">
<button style="margin-bottom: 3px;" type="submit" name="searchinDate-btn" class="mbtn btn btn-primary">Show</button>
</div>
</form>
<p> <?php echo $revenue; ?> </p>
可变收入由于某种原因没有任何回报!注意:开始日期和结束日期以及查询结果实际上都会返回结果,但我认为显示查询结果存在问题,查询结果将是一个整数值,如 562 或其他值!(我需要行号 0 的值而不是行数)
更新:错误是从 PHP 传递日期类型以将其与数据库中的时间戳字段类型进行比较。
将日期转换为时间戳我使用这个 PHP 代码:
<?php
require 'config/db.php';
if(isset($_POST["searchinDate-btn"])){
$start_date = $_POST['startdate'];
$StartDate = date("Y-m-d H:i:s", strtotime($start_date));
$end_date = $_POST['enddate'];
$EndDate = date("Y-m-d H:i:s", strtotime($end_date + '24 hours'));
$totalRev = "SELECT SUM(TransactionAmount) AS Revenue FROM `sales` WHERE TransactionTime BETWEEN '$StartDate' AND '$EndDate'";
$totalRevQ = mysqli_query($conn, $totalRev);
$rev = mysqli_fetch_assoc($totalRevQ);
$revenue = $rev['Revenue'];
}
?>
解决方案
也许在查询的总和中添加一个别名:
$totalRev = "SELECT SUM(TransactionAmount) AS totalAmount FROM `sales` WHERE TransactionTime BETWEEN '$start_date' AND '$end_date'";
然后更改$rev = mysqli_fetch_assoc($totalRevQ)
为$rev = mysqli_fetch_array($totalRevQ)
, 以获取$revenue = $rev["totalAmount"]
:D的值
此外,正如 Strawberry 所说,不要忘记保护该查询免受 SQL 注入,相信用户输入从来都不是一件好事!
推荐阅读
- laravel - Laravel:在关闭时翻译验证消息
- php - 如何在php中搜索和读取excel文件
- c# - 是否有像 C++ 中那样带有分隔符的 C# 原始字符串?
- python - Python:编解码器和 utf-8 全局错误处理
- jquery-select2 - 如何在 select2 中有选项组时使用 Ajax 插入选项?
- javascript - 删除鼠标点击并为简单的 Javascript 添加边框
- css - CSS 无法在 cloud-flare 上正确加载
- excel - Listview(用户窗体)VBA中的唯一行
- c# - 如何删除 ItemsControl 项之间的间距
- scheme - 如何在方案编程中使用 if 语句?