Php 如何在mysql中生成具有特定日期范围的报告
我已经在使用商店收入的每日报告,但我需要我的报告来执行以下操作:我想查看特定日期、周或月的收入报告。。。。基本上,我可以选择要查看的天数或天数范围,以便打印我的选择 这里是inc.phpPhp 如何在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
<?
$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");