Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema declarando un Array

Estas en el tema de Problema declarando un Array en el foro de PHP en Foros del Web. Hola, tengo el siguiente código. Código: <?php /*LOGIN*/ require_once ("funciones.php"); require_once ("AccesoBD.php"); require_once ("negociousuarios.php"); $usuario = "Fermin; $passw = "Fermin"; if(ConexionLogin($usuario,$passw)){ $id = getIdUsuario($usuario); $resultado[]=array("logstatus"=>"1", ...
  #1 (permalink)  
Antiguo 03/06/2014, 11:24
Avatar de RsG
RsG
 
Fecha de Ingreso: febrero-2008
Mensajes: 16
Antigüedad: 16 años, 9 meses
Puntos: 0
Problema declarando un Array

Hola, tengo el siguiente código.

Código:
<?php

/*LOGIN*/

require_once ("funciones.php");
require_once ("AccesoBD.php");
require_once ("negociousuarios.php");

$usuario = "Fermin;
$passw = "Fermin";

if(ConexionLogin($usuario,$passw)){

	
	$id = getIdUsuario($usuario);
	$resultado[]=array("logstatus"=>"1", "idusuario"=>"$id");
	}else{
	$resultado[]=array("logstatus"=>"0");
	}

echo json_encode($resultado);

?>
El objetivo, es que $resultado me devuelva un Array de la siguiente forma

3[{"logstatus":"1","idusuario":"3"}]

Para poder trabajar con la aplicación Android que la usa. El problema, me viene por ese 3 inicial antes del primer corchete que me da el problema al trabajar con el objeto JSON.

¿Como se puede quitar y que simplemente salga [{"logstatus":"1","idusuario":"3"}] que es la cadena que necesito?
  #2 (permalink)  
Antiguo 03/06/2014, 11:40
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 16 años, 4 meses
Puntos: 26
Respuesta: Problema declarando un Array

Hola, ¿qué tal?

La sintaxis que está usando con los corchetes al final...
Código PHP:
$resultado[] = array(); 
Le dice a PHP: "en el array $resultado (que ya debería existir) agregame en la última posición otro array". Es decir, dentro de un nuevo índice del array $resultado estás metiendo otro array, y no creo que sea lo que quieres lograr.

Tu código debería ser algo así:
Código PHP:
<?php
// LOGIN
require_once('funciones.php');
require_once(
'AccesoBD.php');
require_once(
'negociousuarios.php');

$usuario 'Fermin';
$passw 'Fermin';

if (
ConexionLogin($usuario$passw)) {
    
$id getIdUsuario($usuario);

    
$resultado = array('logstatus' => 1'idusuario'=> $id);
} else {
    
$resultado = array('logstatus' => 0);
}

echo 
json_encode($resultado);
?>
Los corchetes te servirían si quisieras hacerlo de esta forma:
Código PHP:
<?php
// Código previo (requires, etc.)...

$resultado = array();

if (
ConexionLogin($usuario$passw)) {
    
$id getIdUsuario($usuario);

    
$resultado['logstatus'] = 1;
    
$resultado['idusuario'] = $id;
} else {
    
$resultado['logstatus'] = 0;
}

echo 
json_encode($resultado);
?>
En ambos casos el resultado es el mismo.

Un saludo.

Última edición por RabidFish; 03/06/2014 a las 11:46
  #3 (permalink)  
Antiguo 03/06/2014, 11:47
Avatar de RsG
RsG
 
Fecha de Ingreso: febrero-2008
Mensajes: 16
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema declarando un Array

Hola, gracias por la ayuda.

Pero sigo teniendo el mismo problema con tu notación, al hacer

Código:
echo json_enconde($resultado);
me sigue duplicando el 4 delante del array que quiero tener.
  #4 (permalink)  
Antiguo 03/06/2014, 11:51
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 16 años, 4 meses
Puntos: 26
Respuesta: Problema declarando un Array

¿Estás seguro de que no tienes otro echo $id; dando vueltas por el código? Porque si yo hago:
Código PHP:
$resultado = array('logstatus' => 1'idusuario'=> 50);

echo 
json_encode($resultado); 
Me devuelve {"logstatus":1,"idusuario":50} tal como debe ser. Tu error debe venir de otra parte del código.
  #5 (permalink)  
Antiguo 03/06/2014, 11:52
Avatar de RsG
RsG
 
Fecha de Ingreso: febrero-2008
Mensajes: 16
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema declarando un Array

Nada, fallo mio. Tenía un echo de más en la función getIdUsuario que era la que me estaba volviendo loco el JSON.

Estupidez mía al olvidarmelo en el debug :D
  #6 (permalink)  
Antiguo 03/06/2014, 11:52
Avatar de RsG
RsG
 
Fecha de Ingreso: febrero-2008
Mensajes: 16
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema declarando un Array

Cita:
Iniciado por RabidFish Ver Mensaje
¿Estás seguro de que no tienes otro echo $id; dando vueltas por el código? Porque si yo hago:
Código PHP:
$resultado = array('logstatus' => 1'idusuario'=> 50);

echo 
json_encode($resultado); 
Me devuelve {"logstatus":1,"idusuario":50} tal como debe ser. Tu error debe venir de otra parte del código.
Si, eso mismo estaba escribiendo jaja.

Fallo mio.
  #7 (permalink)  
Antiguo 03/06/2014, 11:54
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 16 años, 4 meses
Puntos: 26
Respuesta: Problema declarando un Array

Para evitar ese error la próxima vez podrías usar var_dump(json_encode($resultado)); en vez de echo para que te muestre el valor en una línea aparte e indicando el tipo de dato, de esta forma no se te mezcla todo el texto de los echo en una sola línea del mismo color. Saludos.
  #8 (permalink)  
Antiguo 03/06/2014, 11:55
Avatar de RsG
RsG
 
Fecha de Ingreso: febrero-2008
Mensajes: 16
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema declarando un Array

Cita:
Iniciado por RabidFish Ver Mensaje
Para evitar ese error la próxima vez podrías usar var_dump(json_encode($resultado)); en vez de echo para que te muestre el valor en una línea aparte e indicando el tipo de dato, de esta forma no se te mezcla todo el texto de los echo en una sola línea del mismo color. Saludos.
Me apunto el consejo. Gracias.

Etiquetas: Ninguno
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 14:15.