Php 在MySQL中计算今天日期的总和#解析错误
如果tdate不是数据库中的INT数据类型,则需要将该值封装在引号中:Php 在MySQL中计算今天日期的总和#解析错误,php,mysql,Php,Mysql,如果tdate不是数据库中的INT数据类型,则需要将该值封装在引号中: <?php include "db.php"; while($row=mysql_fetch_array($res)) { //Result; //select the sum in here; $sumQry = "SELECT SUM(amount) FROM login"; } ?> 我建议您修改MySQL表并使用DATE、DATETIME或TIMESTAMP 你的字段是CHAR或
<?php
include "db.php";
while($row=mysql_fetch_array($res))
{
//Result;
//select the sum in here;
$sumQry = "SELECT SUM(amount) FROM login";
}
?>
我建议您修改MySQL表并使用DATE、DATETIME或TIMESTAMP 你的字段是CHAR或VARCHAR,这意味着索引即使存在也不能正常工作 如果您将该字段作为上述字段之一,则可以对它们进行索引,并且即使在大量记录上,查询的性能也将是最佳的 事情就是日期,日期时间和时间戳由MySQL数字存储。此外,如果您需要显示多于一条记录,并且希望按此字段排序,则可以按此字段排序
$sumQry = 'SELECT SUM(amount)
FROM login
WHERE tdate = "'.date("F d, Y" ,time()).'"';
我还添加了MySQL字段引号,因为即使在大多数情况下不一定是这样,使用它也是一件好事。如果您有一个大型的联合查询,那么它的性能将提高5%。如果您碰巧使用保留字作为字段名,它们也很好
您的代码应该如下所示:
$sumQry = "SELECT SUM(`amount`) FROM `login` WHERE `tdate` = ". date("Y-m-d" ,time());
$sumQry = "SELECT SUM(`amount`) FROM `login` WHERE `tdate` = ". date("Y-m-d H:i:s" ,time());
$sumQry = "SELECT SUM(`amount`) FROM `login` WHERE `tdate` = ". time();
在db.php中,您应该有如下内容:
include "db.php";
$res = mysqli_query($con, "SELECT SUM(`amount`) FROM `login` WHERE `tdate` = '". date("Y-m-d" ,time() . "' GROUP BY `ammount`;");
$row = mysqli_fetch_array($res);
echo $row[1];
仅供参考,在查询字符串中使用PHP标记对您没有好处。您已经在PHP中构建了查询字符串,因此请使用与
的连接将date()
之类的函数的输出添加到字符串中,如@pvnarula的答案所示。现在检查。注意while循环是不需要的,因为由于组的原因,将返回一个结果。另外,我使用mysqli而不是mysql,因为mysql已被弃用。请看@tinu谢谢:)我已经更新了我的问题,请检查一下now@ilwrence谢谢:)我已经更新了我的问题,请检查一下now@user2457175您需要首先进行查询,更新一些php/sql教程
include "db.php";
$res = mysqli_query($con, "SELECT SUM(`amount`) FROM `login` WHERE `tdate` = '". date("Y-m-d" ,time() . "' GROUP BY `ammount`;");
$row = mysqli_fetch_array($res);
echo $row[1];
$con = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');