Php 如何在mysql中生成具有特定日期范围的报告

Php 如何在mysql中生成具有特定日期范围的报告,php,mysql,pdo,report,Php,Mysql,Pdo,Report,我已经在使用商店收入的每日报告,但我需要我的报告来执行以下操作:我想查看特定日期、周或月的收入报告。。。。基本上,我可以选择要查看的天数或天数范围,以便打印我的选择 这里是inc.php <? $dbtype = "mysql"; $dbhost = "localhost"; $dbname = "anillos"; $dbuser = "rubi"; $dbpass = "----"; $conn = new PDO("mysql:host=$db

我已经在使用商店收入的每日报告,但我需要我的报告来执行以下操作:我想查看特定日期、周或月的收入报告。。。。基本上,我可以选择要查看的天数或天数范围,以便打印我的选择

这里是inc.php

<?
$dbtype     = "mysql";
$dbhost     = "localhost";
$dbname     = "anillos";
$dbuser     = "rubi";
$dbpass     = "----";
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$conn->exec("set names utf8");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
?>

这是我的密码:

<table class="table-bordered table-striped table-condensed">
    <thead>
        <tr>
          <th>Fecha</th>
          <th>Total Anillos Vendidos</th>
          <th>Total ganado del día</th>                                 
        </tr>
    </thead>   
    <tbody id="result_fechas">
        <tr>
            <? 
                include 'inc.php';
                $sql = $conn->prepare("SELECT DATE(start) AS date, COUNT(id_anillos) AS total_anillos, SUM(ventas) AS total_diario_ganado
                FROM PRODUCTOS WHERE start >= CURDATE() AND start < CURDATE() + INTERVAL 1 DAY ORDER BY start ASC");
                $sql->execute();
                while($row = $sql->fetch(PDO::FETCH_ASSOC)) {
            ?>
            <td class="center"><? echo $row['date']; ?></td>
            <td class="center"><? echo $row['total_anillos']; ?></td>
            <td class="center"><? echo $row['total_diario_ganado']; ?></td>                 
        </tr>   <? } ?>                          
    </tbody>

德国福查
文迪多斯总阿尼洛斯酒店
加纳多德尔迪亚酒店

你能帮我个忙吗我真的一点都不知道

----更新-----

@克里斯78我做了这个表格:

<form name="fechas" id="fechas" method="post" >
<fieldset>
<legend>Reporte desde : </legend>
<input type="text" value="" placeholder="YYYY-MM-DD" name="f_desde" id="datepicker"/>
<legend>Reporte hasta : </legend>
<input type="text" value="" placeholder="YYYY-MM-DD" name="f_hasta" id="datepicker2" />
<button class="btn btn-inverse" type="submit" name="enviar" >
<i class="icon icon-print icon-white"></i> 
Ver Reporte                                     </button>
</fieldset>
</form>

德斯德报告:
哈斯塔报告:
新闻报道
新的选择代码:

<? 
$sql = $conn->prepare("SELECT DATE(start) AS date, COUNT(id_anillos) AS total_anillos, SUM(ventas) AS total_ganado FROM PRODUCTOS WHERE start BETWEEN 'f_desde' AND 'f_hasta' ORDER BY start ASC");
$sql->execute();
while($row = $sql->fetch(PDO::FETCH_ASSOC)) {
?>

当您检索输入值时,如果尚未对输入值进行处理,您将使用您提到的这两个输入创建一个表单。然后将sql语句中的“CURDATE()”替换为处理后的InputValue

日期应始终以“yyyy-mm-dd”格式提供给MySql


来源:

如果您想运行日期范围为的
查询
,可以使用
介于
之间的语句

$sql = $conn->prepare("SELECT DATE(start) AS date, COUNT(id_anillos) AS total_anillos, SUM(ventas) AS total_diario_ganado
                FROM PRODUCTOS WHERE start BETWEEN 'Older Date Here' AND 'Newer Date Here' ORDER BY start ASC");

是的,但现在它只显示每天的销售额,我需要查看天数范围内的销售额…我想我需要制作一个表格,插入特定的天数范围,就像输入一样,通过按钮显示这些天的销售额。。如示例2013年7月1日至2013年7月11日的销售额,或2011年至2012年的销售额,这应该是评论,而不是答案。如前所述,更改了我的答案,因为这不是答案。抱歉,谢谢您的建议。您只需将字段发布到
变量中
,然后运行
查询
。例如:
$fromdate=$\u POST['f\u desde']$todate=$_POST['f_hasta']
从“.$fromdate.”到“.$todate.”之间的起始位置。
希望对您有所帮助。
<script type="text/javascript">
      $(function(){
        $("#fechas").submit(function(){
          $.ajax({
            type:"POST",
            url:".reportes.php?ts=" + new Date().getTime(),
            dataType:"text",
            data:$(this).serialize(),
            beforeSend:function(){
              $("#loading").show();
            },
            success:function(response){
                $("#result_fechas").append(response);
                $("#loading").hide();
            } 
          })
          return false;
        });
    });
    });
    </script>
$sql = $conn->prepare("SELECT DATE(start) AS date, COUNT(id_anillos) AS total_anillos, SUM(ventas) AS total_diario_ganado
                FROM PRODUCTOS WHERE start BETWEEN 'Older Date Here' AND 'Newer Date Here' ORDER BY start ASC");