2011-05-13 55 views
0

我的php脚本从表单中获取两个日期并尝试在这两个日期之间获得利润计算。使用日期范围的计算没有给出输出php

在mysql中我的利润表有:ID(INT),order_profit(浮动)和order_date的(日期)

形式日期字段名是date_fromDATE_TO

的代码PHP脚本如下:

<?php 
include("dbconnect.php"); 
$from_date=$_POST['date_from']; 
$to_date=$_POST['date_to']; 
echo "Small date : ".$from_date."<br>"; 
echo "Large date : ".$to_date; 

    $count=1; 


$queryA=mysql_query("SELECT SUM(order_profit) FROM profit WHERE profit_date BETWEEN STR_TO_DATE($from_date, '%Y/%m/%d') AND STR_TO_DATE($to_date, '%Y/%m/%d') "); 

while($row = mysql_fetch_array($queryA)){ 
     $count++; 

     echo "Total Profit"." =". $row['SUM(order_profit)']; 
     } 
    echo $count;  
      echo "<br />"; 


?> 

时,结果显示它显示两个日期和计数值2.这意味着while循环体被执行一次,但没有利润价值显示,但没有显示错误。

请帮我在这方面

+0

检查查询中的str_to_date是否正常工作。它可能会转换错误或返回null来指示失败,这会“中断”查询。 – 2011-05-13 16:43:50

回答

0

检查你使用了正确的列名:

var_dump($row); 

或名称它明确:

SELECT SUM(order_profit) as sum 
+0

谢谢你的回复。如何输出总和? – user752710 2011-05-13 16:40:49

+0

...最后在'$ row ['sum'];' – sics 2011-05-13 16:41:15

+0

'找到你的结果仍然不起作用 – user752710 2011-05-13 16:44:05

0

您还可以重复你的SQL在SQL编辑器中查询并运行它,以查看它实际返回的内容。我已经通过检查我的查询是否有效解决了一些无法追踪的PHP问题。

0

检查了这一点。恕我直言的日期必须被引用。如果还有一些情况,请检查mysql错误:mysql_error()是你的朋友。

<?php 
include("dbconnect.php"); 
$query = "SELECT SUM(order_profit) as profitsum FROM profit "; 
$query .= "WHERE profit_date BETWEEN STR_TO_DATE('".$_POST['date_from']."', '%Y/%m/%d') "; 
$query .= "AND STR_TO_DATE('".$_POST['date_to']."', '%Y/%m/%d')"; 

// to check the query 
echo $query ."<br/>"; 

$result = mysql_query($query) or die(mysql_error()); 

$row = mysql_fetch_array($result); 
echo "Total Profit: ".$row['profitsum']."<br/>; 

?> 
+0

非常感谢你......它工作正常......对我来说是一个很大的解脱 – user752710 2011-05-13 17:44:48