Pregunta:
Fecha: 18-07-2020 12:03:27
(En Español)
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:
Votos: 0 - Respuestas: 2 - Vistas: 6 Compartir en: Google Facebook Twitter LinkedIn Link
Acceder a las propiedades de un objeto [Resuelta]
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
Votos: 0 - Respuestas: 2 - Vistas: 6 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 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
Votos: 1 - Link respuesta -
Fecha: 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. Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
