Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2014, 10:02
Avatar de Middrel
Middrel
 
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Consulta funcional en local más no en servidor

Hola, buenos días...

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;
               }                

este código, mediante un pequeño formulario envía algunos parámetros a la base de datos, hace un consulta y regresa un reporte de acuerdo a lo que solicitaste. Cuando hace la consulta envía algunos parámetros a una función que pinta el reporte en pantalla. Esa función es la siguiente:

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($sqlSelectClienteMYSQL_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); 
        } 
Bueno, si este reporte lo ejecuto en mi equipo, en mi servidor local (utilizo XAMPP) funciona perfectamente. Sin embargo, lo subí a un servidor que tenemos, con un proveedor de hosting con el que hemos trabajado siempre, y no funciona :/

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:
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"
En servidor de proveedor de hosting:

Cita:
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"
Noto que me toma las fechas de el día actual solamente en el servidor, pero no sé el porqué, en local funciona correctamente.

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!