Foros del Web » Programando para Internet » PHP »

Consulta funcional en local más no en servidor

Estas en el tema de Consulta funcional en local más no en servidor en el foro de PHP en Foros del Web. 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' ...
  #1 (permalink)  
Antiguo 05/02/2014, 09:02
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 792
Antigüedad: 14 años, 2 meses
Puntos: 24
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!
  #2 (permalink)  
Antiguo 05/02/2014, 11:49
 
Fecha de Ingreso: febrero-2013
Mensajes: 115
Antigüedad: 6 años, 5 meses
Puntos: 5
Respuesta: Consulta funcional en local más no en servidor

supon go que debes estar trabajando con bases de datos... bueno con el xampp puedes crearlas facilmente sin escribir ningun codigo... ahora para una consulta a la base de datos con el xampp e muy facil... promero tienes que haer la conexion a la base de datos

lo haces de esta forma:
creamos un archivo llamado conexion.php por ejemplo

Código PHP:
Ver original
  1. <?php
  2.  
  3. $hostname_conexionbd = "ACA EL SERVIDOR"; //como es local seria localhost o la ip local 127.0.0.1
  4. $database_conexionbd = "aca el nombre de la base de datos";
  5. $username_conexionbd = "aca el nombre de usuario del xamp";//por defecto es root
  6. $password_conexionbd = "ACA EL PASSWORD ";//por defecto no tiene password
  7. #este cofiho de aqui es la conexion a la pase de datos
  8. #tiene incluido las variables con el usuario, clave y servidor
  9. $conexionbd = mysql_pconnect($hostname_conexionbd, $username_conexionbd, $password_conexionbd) or trigger_error(mysql_error(),E_USER_ERROR);
  10. ?>

para hacer la consulta se hace de la siguiente forma creamos el archivo donde mostraremos los datos
por ejemplo consulta.php
Código PHP:
Ver original
  1. <?php
  2.   #incluimos la conexion a la base de datos
  3. #require_once("url del archivo de conexion");
  4. reuire_once('conexion.php');
  5.  
  6. #ahora hacemos la cunsulta
  7.  
  8. #nos conectamos a la base de datos
  9. mysql_select_db(aca la variable que guarda el nombre de la base de datos, variable de conexion );
  10.  
  11. #hacemos la cunsulta
  12. $query_CONSULTA = "SELECT "aqui van las culumnas que queremos consultar" FROM "aca la base de datos" ";
  13. #OJO LOS QUE SON LAS CULUMNAS Y LA TABLA NO VAN ENTRE COMILLAS
  14.  
  15. #recibimos los resultados
  16. $RESULTADO = mysql_query($query_CONSULTA, aca la variable de conexion) or die(mysql_error());
  17.  
  18. #ordenamos los resultados
  19. $row_RESULTADOS_ORDENADOS = mysql_fetch_assoc($RESULTADO);
  20.  
  21. #contamos los resultados de la consulta
  22. $NUMERO_DE_RESULTADOS = mysql_num_rows($RESULTADO);
  23. ?>
  24.  
  25. #PARA MOSTRAR LOS RESULTADOS LOS TENDRIAS QUE HACER CON LA VARIABLE DE RESULTADOS ORDENADOS DE LA SIGUIENTE FORMA...
  26.  
  27.  
  28.  <?PHP ECHO $row_RESULTADOS_ORDENADOS['ACA EL NOMBRE DE LA COLUMNA'];?>

ESPERO TE SIRVA...
__________________
http://tutorialesdelweb.blogspot.com/TutorialesWeb(principiantes)
  #3 (permalink)  
Antiguo 05/02/2014, 12:20
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 792
Antigüedad: 14 años, 2 meses
Puntos: 24
Respuesta: Consulta funcional en local más no en servidor

Si, esa parte la entiendo sin problemas ^^

Este código es de un generador de reportes. El usuario por internet se conecta y de acuerdo a diversos parámetros realizará su búsqueda.

El problema radica en que, en mi servidor local, donde trabajo, hago las pruebas, etc., todo funciona muy bien. Sin embargo, cuando lo subo a un servidor proporcionado por un proveedor de hosting que tenemos, no está funcionando correctamente.

Al parecer, no está pasando los datos de las fechas y por ello no muestra nada, siempre se queda en la fecha configurada al día actual, más no toma las seleccionadas.

Como comenté anteriormente, esos datos de las fechas si las pasa bien en mi servidor local.

Saludos!

Etiquetas: fecha, formulario, funcional, local, mysql, select, servidor, sql
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 22:03.