在今天的日期计算MySQL中的SUM #Parse错误

时间:2013-06-15 08:55:49

标签: php mysql

<?php
while($row=mysql_fetch_array($res))
{
    //Result;
    //select the sum in here;
    $sumQry = "SELECT SUM(amount) FROM login WHERE tdate = '<?php echo date("F d, Y" ,time()); ?>"  />' ";
}
?>

错误解析错误:语法错误,第4行的......意外T_STRING

我想计算今天日期的数字总和(我的意思是10 + 50 + 85 + 90),然后计算结果的总和。所以使用了上面的代码。但我认为<?php echo date("F d, Y" ,time()); ?>

有些不对劲

更新 好。多谢你们!离开约会。但我也无法显示总和。

警告:mysql_fetch_array():提供的参数不是第3行**中的有效MySQL结果资源

<?php
include "db.php";
while($row=mysql_fetch_array($res))
{
    //Result;
    //select the sum in here;
    $sumQry = "SELECT SUM(amount) FROM login";
}
?>

2 个答案:

答案 0 :(得分:0)

如果tdate不是db中的INT数据类型,则需要将值封装在引号中:

$sumQry = 'SELECT SUM(amount)
           FROM login 
           WHERE tdate = "'.date("F d, Y" ,time()).'"';

答案 1 :(得分:0)

我建议您修改MySQL表并使用DATE,DATETIME或TIMESTAMP。

他们这样做你的字段是CHAR或VARCHAR,这意味着索引即使存在也不会正常工作。

如果您将该字段作为上述之一,则可以将其编入索引,即使在大量记录上,查询的性能也是最佳的。

事情是DATE,DATETIME和TIMESTAMP由MySQL以数字方式存储。此外,如果您需要显示更多记录并希望按此字段订购,您还可以按此字段进行排序。

$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();

我还添加了MySQL字段引用,因为即使它不一定是大部分时间,也是一件好事。如果您有一个大型的JOINed查询,它们的性能最高可提高5%。如果您有任何机会使用保留字作为字段名称,它们也很好。

您的代码应如下所示:

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];

在db.php中你应该有:

$con = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');