Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] php devuelve null en una request

Estas en el tema de php devuelve null en una request en el foro de PHP en Foros del Web. Cierto, se me olvido cambiarlo!! Muchas gracias, ahora voy a colgarlo en el server, y a ver si por fin todo va como la seda!...

  #61 (permalink)  
Antiguo 13/08/2014, 01:06
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

Cierto, se me olvido cambiarlo!! Muchas gracias, ahora voy a colgarlo en el server, y a ver si por fin todo va como la seda!
  #62 (permalink)  
Antiguo 13/08/2014, 02:11
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

Ahora me devuelve.. No value for "empresa"

Código PHP:
<?php
//Array dades JSON
$response = array();
    
//Connexio DB
include('Conexion.php');
    
//Comprovem que ens arrriba per URL les coordenadas
if ((isset($_GET["idClient"])) and (isset($_GET["latitud"])) and (isset($_GET["longitud"]))) {
        
    
//Desem el id del client
    
$id $_GET["idClient"];        
    
//Recollim la latitud i la longitud
    
$latitudOrigen $_GET["latitud"];
    
$longitudOrigen $_GET["longitud"];
                
    
//<--------------------------------------------------COMENÇA LA QUERY------------------------------------------------->
                
    //Cerquem a la bdd la latitud, longitud, nom, ciutat, id, i descripcio dels clients
    
$query mssql_query("SELECT TOP 50 c.NORD, c.EST, c.NOMEMPRESA, c.CIUTAT, c.IDCLIENT, a.DESCRIPCIO FROM CANON.dbo.CLIENT c, CANON.dbo.ACTIVITAT a WHERE c.NORD <> -1.00000000 AND c.EST <> -1.00000000 AND c.ESCLIENT = 1 AND c.IDCLIENT <> '$id' and c.idactivitat = a.idactivitat") or die("ERROR AL EXECUTAR LA SEGONA QUERY");
                
    if (
mssql_num_rows($query) > 0) {
                
        
        
//Será el radi angular
        
$r 0;

        
$distancia 10;
        
//Radi de la terra
        
$radiTerrestre 6371;
        
//Latitud del punt d'origen
        
$latitud 0;
        
//Longitud del punt d'origen
        
$longitud 0;
                    
        
$Alon 0;
        
$latitudMin 0;
        
$latitudMax 0;
        
$longitudMin 0;
        
$longitudMax 0;
                    
        
//Començem calculant el radi angular
        
$r $distancia/$radiTerrestre;
                    
        
//Recollimla latitud i la longitud del camp seleccionat
        
$latitud $latitudOrigen * (pi()/180);
        
$longitud $longitudOrigen * (pi()/180);
                    
        
//Calculem la latitud mínima i la latitud máxima
        
$latitudMin $latitud $r;
        
$latitudMax $latitud $r;
                    
        
//Calculem fórmula per poder calcular longitud mínima i máxima
        
$Alon asin(sin($r)/cos($latitud));
                    
        
//Calculem longitud mínima
        
$longitudMin $longitud $Alon;
                    
        
//Calculem la longitud máxima
        
$longitudMax $longitud $Alon;
                
        
//Declarem un array d'arrays on ficarem cadascuna de les empreses properes que evaluem a sota
        
$response["empresa"] = array();
                
        
//Fem un recorrecut de la query row per row, es a dir empresa per empresa
        
while ($result mssql_fetch_array($query)) {
                            
            
//Agafem les coordenades de l'empresa destí i les passem a radians
            
$lat $result["NORD"] * (pi()/180);
            
$lon $result["EST"] * (pi()/180);
                            
            
//Evaluem si els valors es troben entre els maxims i els minims
            
if ($latitudMax >= $lat and $latitudMin <= $lat and $longitudMax >= $lon and $longitudMin <= $lon) {
                
                
//Declarem un array per ficar les dades d'una empresa
                
$empresa = array();
                
                
//Insertem les dades en l'array
                
$empresa["latitud"] = utf8_encode($result["NORD"]);
                
$empresa["longitud"] = utf8_encode($result["EST"]);
                
$empresa["nom"] = utf8_encode($result["NOMEMPRESA"]);
                
$empresa["ciutat"] = utf8_encode($result["CIUTAT"]);
                
$empresa["id"] = utf8_encode($result["IDCLIENT"]);
                
$empresa["descripcio"] = utf8_encode($result["DESCRIPCIO"]);
                
                
//Fiquem l'array empresa dintre del array d'empreses
                
array_push($response["empresa"], $empresa);
            }    
        }
        
        
//<-------------------------------SI TOT VA BÉ ARRIBARÁ AQUÍ-------------------------------->
        //Resposta success!
        
$response["success"] = 1;
        
        
//Mostrem la resposta en format JSON
        
echo json_encode($response);
        
    }else {
                
        
//No resultats segona query "$query2"
        
$response["success"] = 0;
        
$response["cause"] = "NO_RESULTS_SECOND_QUERY";
        
$response["message"] = utf8_encode("No hi han empreses dins de la segona consulta");
                        
        
//Mostrem al resposta en format JSON
        
echo json_encode($response);
    }        
    
}else {
    
    
//Falten parámetres per pasarli al php
    
$response["success"] = 0;
    
$response["cause"] = "EMPTY_PARAMETERS";
    
$response["message"] = utf8_encode("Falten parámetres per rebre");
    
    
//Mostrem al resposta en format JSON
    
echo json_encode($response);
}
?>

Última edición por adrirs11; 13/08/2014 a las 02:34 Razón: Fallos
  #63 (permalink)  
Antiguo 13/08/2014, 02:34
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: php devuelve null en una request

Comprueba antes de hacer el array_push que el array $empresa tenga algún valor, ya que lo mismo en alguna de las vueltas del bucle, aunque no es normal, puede que no te devuelva datos y el array se quede vacío.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #64 (permalink)  
Antiguo 13/08/2014, 03:03
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

No me devuelve nada, peta en el parser...y no me encuentra la variable empresa...ya me paso hace unas semanas con otro, y era por un error sintáctico, no sé si aquí será por lo mismo.
  #65 (permalink)  
Antiguo 13/08/2014, 03:06
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

Lo que hago para recoger los parámetros ..creéis que está bien?

if ((isset($_GET["idClient"])) and (isset($_GET["latitud"])) and (isset($_GET["longitud"]))) {...}
  #66 (permalink)  
Antiguo 13/08/2014, 03:08
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: php devuelve null en una request

A ver haz lo siguiente, dentro del IF comenta la siguiente línea:
Código PHP:
Ver original
  1. array_push($response["empresa"], $empresa);

Ahora crea un array a mano que sepas que te funcionara bien en el parser, y haz la prueba a ver si te lo muestra.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #67 (permalink)  
Antiguo 13/08/2014, 03:10
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: php devuelve null en una request

Una cosa, no sera posible que se este sobrescribiendo el mismo array?

Porque lo estas declarando cada vez que entra dentro del if en el while!

Yo lo declararía antes .
  #68 (permalink)  
Antiguo 13/08/2014, 03:10
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

Sisi eso ya lo he probado, junto con lo que me has dicho antes...he añadido el echo de $empresa y he comentado el de $response.
  #69 (permalink)  
Antiguo 13/08/2014, 03:11
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

En 30 min vuelvo, que tengo descanso.. y pruebo lo q se os ocurra, gracias.
  #70 (permalink)  
Antiguo 13/08/2014, 03:17
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: php devuelve null en una request

Te lo ponía para comprobar que realmente pasa por el IF.
Si dices que teóricamente pasa por el IF y que los datos te los mete en el array, tendrás que mirar que los nombres que estés usando para declarar los índices (["latitud"]) sean los correctos.
Si no pasa por el if puede ser que o bien no encuentre nada o que la consulta esté mal.
Si la consulta esta mal habría que ver si recibes los datos bien del GET.

Djoaq: Lo que esta tratando de hacer es meter todos los valores que obtiene en un array, y ese array implementarselo a $response con el array_push, por eso en cada pasada lo vacía para obtener los datos limpios, ya que se supone que el push ya lo habrá metido en el "principal".
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net

Última edición por bookmaster; 13/08/2014 a las 03:22
  #71 (permalink)  
Antiguo 13/08/2014, 03:45
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

No creo que se sobrescriba el array, así es como lo hago en otros php y funciona bien. Yo creo que como dice bookmaster, no debe recoger los valores bien.
  #72 (permalink)  
Antiguo 13/08/2014, 03:46
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

La consulta es correcta, lo he comprobado y me devuelve miles de registros.
  #73 (permalink)  
Antiguo 13/08/2014, 03:48
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: php devuelve null en una request

Pues ahora te queda comprobar el IF si lo hace bien, y si as puesto bien los nombres de los indices que quieres usar.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #74 (permalink)  
Antiguo 13/08/2014, 03:55
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

Los nombres son correctos, mirad esto es lo que envío desde android, y haciendo debugg le pasa los datos correctamente:

if(coordenadesUser != null){
paramsHTTP.add(new BasicNameValuePair("latitud", coordenadesUser.get("latitud").toString()));
paramsHTTP.add(new BasicNameValuePair("longitud", coordenadesUser.get("longitud").toString()));
correcte = 1;
}else{
correcte = 0;
}

//Afegim l'ID de client perquè ens mostri els empleats del client
if(clickedClient != null){
paramsHTTP.add(new BasicNameValuePair("idClient", clickedClient));
}

Ahora voy a comprobar lo del if.
  #75 (permalink)  
Antiguo 13/08/2014, 08:07
Avatar de adrirs11  
Fecha de Ingreso: diciembre-2012
Ubicación: BCN
Mensajes: 107
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: php devuelve null en una request

Perdonad la tardanza, he estado resolviendo problemitas de localización con android. Por fin lo he conseguido, justo al solucionar lo de android, he separarado en tres IF la recogida de parámetros en vez de hacerlo en un solo if..

if ((isset($_GET["idClient"])) and (isset($_GET["latitud"])) and (isset($_GET["longitud"]))) {...}

Funciona perfecto, muchas gracias a todos, os debo una por el tiempo perdido ;), un abrazo.

PD: marco el tema como solucionado.

Etiquetas: devuelve, null, request, select, sql, variable
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 21:39.