1
<?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),并在 fount end 中计算总和。所以使用了上面的代码。但我觉得有些不对劲<?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";
}
?>
4

2 回答 2

0

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

$sumQry = 'SELECT SUM(amount)
           FROM login 
           WHERE tdate = "'.date("F d, Y" ,time()).'"';
于 2013-06-15T09:09:08.097 回答
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');
于 2013-06-15T09:11:38.580 回答