Foros del Web » Programando para Internet » PHP »

Como arreglo este filtro en php de mis ventas

Estas en el tema de Como arreglo este filtro en php de mis ventas en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con esta consulta. Tiene la opcion para consultar llas ventas de una fecha a otra en especifico, Todo funciona ...
  #1 (permalink)  
Antiguo 15/01/2019, 14:07
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Como arreglo este filtro en php de mis ventas

Hola a todos, tengo un problema con esta consulta. Tiene la opcion para consultar llas ventas de una fecha a otra en especifico, Todo funciona bien hasta cierto tiempo, pero resulta que ahora cuando consulto or ejemplo las fechas de Diciembre 15 de 2018 a Enero 15 de 2019 me hace la consulta desde todos los registros de años anteriores, es decir, que si tengo el sistema desde el 2017 me muestra los registros del 2017 hasta el 2019, no se que ppasa ni como solucionarlo.

Aqui les dejo el codigo de mi consulta

<form action="salesreport.php" method="get" class="form-horizontal">
<center><strong>De : <input type="text" style="width: 223px; padding:14px;" name="d1" class="tcal" value="" placeholder="mm/dd/aa" /> A: <input type="text" style="width: 223px; padding:14px;" name="d2" class="tcal" value="" placeholder="mm/dd/aa" />
<button class="btn btn-info" style="width: 123px; height:50px; margin-top:-8px;margin-left:8px;" type="submit"> Ver Reporte</button>
<a href="salesreport.php?d1=0&d2=0"><button class="btn btn-danger" style="width: 145px; height:50px; margin-top:-8px;margin-left:8px;"> Limpiar Reporte</button></a>
</strong></center>
</form>
<br>
<div class="content" id="content">
<div style="font-weight:bold; text-align:center;font-size:14px;margin-bottom: 15px;">
REPORTE DE VENTAS DE: <font color="#01A9DB"><b> &nbsp;<?php echo $_GET['d1'] ?>&nbsp;a&nbsp;<?php echo $_GET['d2'] ?></b></font>
</div>

<div class="table-responsive">
<table class="table table-bordered table-hover table-striped table-responsive" data-plugin="DataTable" id="resultTable" style="text-align: left;" cellspacing="0" width="100%">
<thead>
<tr>
<th width="10%"> Num de Orden </th>
<th width="10%"> Producto </th>
<th width="10%"> Cant. </th>
<th width="10%"> Categoria </th>
<th width="10%"> Fecha Trans. </th>
<th width="10%"> Cantidad </th>
<th width="10%"> Ganancia </th>
</tr>
</thead>
<tbody>

<?php
include('config/connect.php');
$d1=$_GET['d1'];
$d2=$_GET['d2'];
$result = $db->prepare("SELECT * FROM sales_order WHERE date BETWEEN :a AND :b ORDER by transaction_id DESC ");
$result->bindParam(':a', $d1);
$result->bindParam(':b', $d2);
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
?>
<tr class="record">
<td><?php echo $row['invoice']; ?></td>
<td><?php echo $row['gen_name']; ?></td>
<td><?php echo $row['qty']; ?></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['date']; ?></td>



<td style="text-align:right"><?php echo $row['amount']; ?></td>
<td style="text-align:right">
<?php echo $row['profit']; ?></td>
</tr>
<?php
}
?>

</tbody>
<thead>
<tr>
<th colspan="5" style="border-top:1px solid #999999" ><p align="left"> Total: </th>
<th colspan="1" style="border-top:1px solid #999999"> <p align="right">$
<?php
function formatMoney($number, $fractional=false) {
if ($fractional) {
$number = sprintf('%.2f', $number);
}
while (true) {
$replaced = preg_replace('/(-?\d+)(\d\d\d)/', '$1,$2', $number);
if ($replaced != $number) {
$number = $replaced;
} else {
break;
}
}
return $number;
}
$d1=$_GET['d1'];
$d2=$_GET['d2'];
$results = $db->prepare("SELECT sum(amount) FROM sales WHERE date BETWEEN :a AND :b");
$results->bindParam(':a', $d1);
$results->bindParam(':b', $d2);
$results->execute();
for($i=0; $rows = $results->fetch(); $i++){
$dsdsd=$rows['sum(amount)'];
echo formatMoney($dsdsd, true);
}
?>
</th>
<th colspan="1" style="border-top:1px solid #999999"> <p align="right">$
<?php
$resultia = $db->prepare("SELECT sum(profit) FROM sales WHERE date BETWEEN :c AND :d");
$resultia->bindParam(':c', $d1);
$resultia->bindParam(':d', $d2);
$resultia->execute();
for($i=0; $cxz = $resultia->fetch(); $i++){
$zxc=$cxz['sum(profit)'];
echo formatMoney($zxc, true);
}
?>
</th>

</tr>
</thead>
</table>
</div>
</div>
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #2 (permalink)  
Antiguo 16/01/2019, 07:37
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 9 meses
Puntos: 39
Respuesta: Como arreglo este filtro en php de mis ventas

Creo que tu problema está en la consulta MySQL, que por alguna razón no te está obteniendo bien los resultados. Prueba a hacer la consulta de alguna de estas formas:

Código PHP:
Ver original
  1. $result = $db->prepare("SELECT * FROM sales_order WHERE date BETWEEN '" . $d1 . "' AND '" . $d2 . "' ORDER by transaction_id DESC");

Código PHP:
Ver original
  1. $result = $db->prepare("SELECT * FROM sales_order WHERE date >= '" . $d1 . "' AND date <= '" . $d2 . "' ORDER by transaction_id DESC");
__________________
Diseño Web - Arisman Web
  #3 (permalink)  
Antiguo 16/01/2019, 18:06
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Como arreglo este filtro en php de mis ventas

Cita:
Iniciado por manuparquegiralda Ver Mensaje
Creo que tu problema está en la consulta MySQL, que por alguna razón no te está obteniendo bien los resultados. Prueba a hacer la consulta de alguna de estas formas:

Código PHP:
Ver original
  1. $result = $db->prepare("SELECT * FROM sales_order WHERE date BETWEEN '" . $d1 . "' AND '" . $d2 . "' ORDER by transaction_id DESC");

Código PHP:
Ver original
  1. $result = $db->prepare("SELECT * FROM sales_order WHERE date >= '" . $d1 . "' AND date <= '" . $d2 . "' ORDER by transaction_id DESC");
Nada mi amigo, el problema persiste
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #4 (permalink)  
Antiguo 16/01/2019, 18:44
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Como arreglo este filtro en php de mis ventas

Cita:
Iniciado por karenlorenadg Ver Mensaje
Nada mi amigo, el problema persiste
seria bueno si antes, muestras la estructura de tu tabla, podria deverse a que no esta con las valores de fecha correctamente por lo cual BETWEN no trabajando bien
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #5 (permalink)  
Antiguo 16/01/2019, 21:34
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Como arreglo este filtro en php de mis ventas

Cita:
Iniciado por tuadmin Ver Mensaje
seria bueno si antes, muestras la estructura de tu tabla, podria deverse a que no esta con las valores de fecha correctamente por lo cual BETWEN no trabajando bien
Si claro, asi está mi tabla

__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #6 (permalink)  
Antiguo 17/01/2019, 11:44
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Como arreglo este filtro en php de mis ventas

Cita:
Iniciado por karenlorenadg Ver Mensaje
Si claro, asi está mi tabla

jjeej me referia a la estructura, no a los datos

algo como

Código MySQL:
Ver original
  1. TABLE MyGuests (
  2. firstname VARCHAR(30) NOT NULL,
  3. lastname VARCHAR(30) NOT NULL,
  4. email VARCHAR(50),
  5. reg_date TIMESTAMP
  6. )

por lo visto, tienes un campo llamado "date" pero estoy pensando que es un varchar, por eso mejor muestra la estructura de la tabla :)
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9
  #7 (permalink)  
Antiguo 17/01/2019, 12:44
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Como arreglo este filtro en php de mis ventas

Cita:
Iniciado por tuadmin Ver Mensaje
jjeej me referia a la estructura, no a los datos

algo como

Código MySQL:
Ver original
  1. TABLE MyGuests (
  2. firstname VARCHAR(30) NOT NULL,
  3. lastname VARCHAR(30) NOT NULL,
  4. email VARCHAR(50),
  5. reg_date TIMESTAMP
  6. )

por lo visto, tienes un campo llamado "date" pero estoy pensando que es un varchar, por eso mejor muestra la estructura de la tabla :)

Si disculpa, no me fijé
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #8 (permalink)  
Antiguo 17/01/2019, 13:00
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Como arreglo este filtro en php de mis ventas

Cita:
Iniciado por karenlorenadg Ver Mensaje
Si disculpa, no me fijé
bueno ahi lo tienes, el problema es que tu campo "date" es del tipo VARCHAR, y la funcion BETWEEN trabaja, con Numeros y no con Strings, al referirme con numeros ENGLOBA, ENTEROS,FLoats,doubles,DATETIME,DATE

tendras que cambiar ello, si quieres usar between como se debe,
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9

Etiquetas: arreglo, funcion, ventas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:21.