Tengo el siguiente problema, o duda, o ya ni sé ... :(
Tengo el siguiente código:
Código PHP:
if(isset($_POST['generar'])) {
// Traemos los valores del post del formulario y los evaluamos con mysqli_real_escape y trim.
$condicion1 = trim(mysqli_real_escape_string($connect, $_POST['condicion1']));
$condicion2 = trim(mysqli_real_escape_string($connect, $_POST['condicion2']));
$ordenar = trim(mysqli_real_escape_string($connect, $_POST['ordenar']));
$metodo = trim(mysqli_real_escape_string($connect, $_POST['metodo']));
// Establecemos los parámetros de la fecha, si no seleccionas da por default el día actual
$hoy = date('Y-m-d'); var_dump($hoy);
if($fecha1 == ''){ $fecha1 = $hoy; } else { $fecha1 = trim(mysqli_real_escape_string($connect, $_POST['fecha1'])); }
if($fecha2 == ''){ $fecha2 = $hoy; } else { $fecha2 = trim(mysqli_real_escape_string($connect, $_POST['fecha2'])); }
var_dump($fecha1 . ' ' . $fecha2);
// Configuramos los métodos de ordenamiento
if($ordenar == '0'){ $ordenar = 'id_clientes'; }
elseif($ordenar == '1'){ $ordenar = 'cli_razon_social'; }
elseif($ordenar == '2'){ $ordenar = 'fac_fecha_elaboracion'; }
elseif($ordenar == '3'){ $ordenar = 'fac_tipo'; }
elseif($ordenar == '4'){ $ordenar = 'fac_tipo'; }
if($metodo == '' || $metodo == 'Ascendente'){ $metodo = ''; } else{ $metodo = 'DESC'; }
// Establecemos los parámetros de estatus del pedido o factura
if($estado == ''){ $estado = "PC' Or fac_estatus = 'CB' Or fac_estatus = 'C"; } else { $estado = trim(mysqli_real_escape_string($connect, $_POST['estado'])); }
switch($condicion1){
case ($condicion1 == '1'): // Cuando la condición es igual a uno, realizamos consultas referentes a los "Clientes" + los parámetros proporcionados.
$sqlSelectCliente = mysqli_query($connect, "Select id_clientes, cli_razon_social, cli_rfc, fac_folio, fac_fecha_elaboracion, fac_fecha_cancelacion, fac_total, fac_estatus, fac_tipo From mod_clientes Left Join mod_facturas On(id_clientes = fac_id_cliente) Where fac_fecha_elaboracion Between '$fecha1' And '$fecha2' And fac_estatus = '$estado' Order by $ordenar $metodo", MYSQLI_USE_RESULT) or die(mysqli_error($connect));
clientes_x_facturas($sqlSelectCliente, $fecha1, $fecha2);
break;
}
}
Código PHP:
function clientes_x_facturas($sqlSelectCliente, $fecha1, $fecha2){
echo '<h2>Reporte de clientes por facturas y pedidos del ' . $fecha1 . ' al ' . $fecha2 . '</h2>';
echo '<table>
<tr>
<td align="center" class="head-lista">Código Cliente</td>
<td align="center" class="head-lista">Cliente</td>
<td align="center" class="head-lista">RFC</td>
<td align="center" class="head-lista">Folio Factura</td>
<td align="center" class="head-lista">Fecha Elaboración</td>
<td align="center" class="head-lista">Fecha Cancelación</td>
<td align="center" class="head-lista">Total Factura o pedido</td>
<td align="center" class="head-lista">Estado de la factura o pedido</td>
<td align="center" class="head-lista">Tipo de Documento</td>
</tr>';
while($rowSelectCliente = mysqli_fetch_array($sqlSelectCliente, MYSQL_ASSOC)){
echo '<tr>
<td align="center"><a href="clientes.php?cliente=' . $rowSelectCliente['id_clientes'] . '">' . 'C-000' . $rowSelectCliente['id_clientes'] . '</a></td>
<td align="left"><a href="clientes.php?cliente=' . $rowSelectCliente['id_clientes']. '">' . $rowSelectCliente['cli_razon_social'] . '</a></td>
<td align="left"><a href="clientes.php?cliente=' . $rowSelectCliente['id_clientes']. '">' . $rowSelectCliente['cli_rfc'] . '</a></td>
<td align="center"><a href="facturacion.php?factura=' . $rowSelectCliente['fac_folio']. '">' . 'F-000' . $rowSelectCliente['fac_folio'] . '</a></td>
<td align="center">' . $rowSelectCliente['fac_fecha_elaboracion'] . '</td>
<td align="center">' . $rowSelectCliente['fac_fecha_cancelacion'] . '</td>
<td align="right">' . number_format($rowSelectCliente['fac_total'],2) . '</td>
<td align="center">' . $rowSelectCliente['fac_estatus'] .'</td>
<td align="center">' . $rowSelectCliente['fac_tipo'] . '</td>
</tr>';
} mysqli_free_result($rowSelectCliente);
}
No me marca error en la consulta, le metí un die() y no arroja nada de eso, utilicé un var_dump(), para ver si envía los parámetros y los resultados son los siguientes:
En servidor local (XAMPP):
Cita:
En servidor de proveedor de hosting:Datos del formulario:
array(6) { ["condicion1"]=> string(1) "1" ["condicion2"]=> string(1) "0" ["fecha1"]=> string(10) "2013-12-01" ["fecha2"]=> string(0) "" ["ordenar"]=> string(1) "0" ["generar"]=> string(7) "GENERAR" }
Ver fecha actual: string(10) "2014-02-05"
Ver fecha1 y fecha2: string(21) "2013-12-01 2014-02-05"
array(6) { ["condicion1"]=> string(1) "1" ["condicion2"]=> string(1) "0" ["fecha1"]=> string(10) "2013-12-01" ["fecha2"]=> string(0) "" ["ordenar"]=> string(1) "0" ["generar"]=> string(7) "GENERAR" }
Ver fecha actual: string(10) "2014-02-05"
Ver fecha1 y fecha2: string(21) "2013-12-01 2014-02-05"
Cita:
Noto que me toma las fechas de el día actual solamente en el servidor, pero no sé el porqué, en local funciona correctamente. Datos del formulario:
array(6) { ["condicion1"]=> string(1) "1" ["condicion2"]=> string(1) "0" ["fecha1"]=> string(10) "2013-12-01" ["fecha2"]=> string(0) "" ["ordenar"]=> string(1) "0" ["generar"]=> string(7) "GENERAR" }
Ver fecha actual: string(10) "2014-02-05"
Ver fecha1 y fecha2: string(21) "2014-02-05 2014-02-05"
array(6) { ["condicion1"]=> string(1) "1" ["condicion2"]=> string(1) "0" ["fecha1"]=> string(10) "2013-12-01" ["fecha2"]=> string(0) "" ["ordenar"]=> string(1) "0" ["generar"]=> string(7) "GENERAR" }
Ver fecha actual: string(10) "2014-02-05"
Ver fecha1 y fecha2: string(21) "2014-02-05 2014-02-05"
Añadí la siguiente instrucción: date_default_timezone_set("America/Mexico_City"); pero aún así el problema persiste.
¿Será alguna configuración en el servidor la que no me permite ejecutarlo correctamente?
De antemano les agradezco sus comentarios. Saludos!