New question

Question:

Date: 18-07-2020 12:03:27 (In Spanish)

Acceder a las propiedades de un objeto [Resolved]

Hola, necesito ayuda en lo siguiente:
Estoy tratando de acceder a las propiedades de un objeto a través de una consulta Mysql.
tabla= tb1
columna= cf
datos en columna cf = {"4":"12","6":" 2017 "}
Lo que necesito es guardar el valor de cada clave en una variable, ejemplo $d1=12; $d2=2017;

Hasta ahora no había trabajado con estas consultas, por ello necesito de su colaboración.
He tratado esto:
    

$datos = $mysqli->query("SELECT cf FROM  tb1 WHERE 1"); 
               $datos_objeto = mysqli_fetch_assoc($datos);

               $d1 = $datos_objeto{'4'};  // he intentado también  con [ ] 
               $d2 = $datos_objeto{'6'};

// Lo que esperaría es $d1=12 y $d2=2017


Tags: Database - PHP - PHP MySQLi - Question Votes: 0 - Answers: 2 - Views: 5 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 18-07-2020 13:34:24 Lo que pasa es que mysqli_fetch_assoc($datos) te devuelve un array donde cada clave corresponde a un campo de la tabla. Entonces tienes que escribir $datos_objeto['cf'] para obtener el valor correspondiente.

    Por otra parte, {"4":"12","6":" 2017 "} parece ser una cadena en formato JSON, por lo que en ese caso además tendrás que usar json_decode() para poder manejarla:
    $cf = json_decode($datos_objeto['cf'], true);


    De esta manera, podrás acceder a los valores así:
    $cf[4]; // para obtener el valor 12
    $cf[6]; // para obtener el valor 2017
    


    El parámetro true en json_decode() indica que los datos se deben obtener como un array, ya que la función por defecto devuelve un objeto. Pero en este caso, como las claves del json son numéricas no podrías leerlas en forma de objeto y fallaría:

    $cf->4; // esto no funcionaría
      Votes: 1 - Link answer
     
  • Date: 20-07-2020 07:14:16 Estimado Cristian, agradezco tu colaboración.
    Tu respuesta ha solucionado la duda respecto al tema.
    Muchas gracias y Saludos.
      Votes: 1 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In