Construir string de conexión con salida de una consulta en PHP - Forum

Forum Navigation
You need to log in to create posts and topics.

Construir string de conexión con salida de una consulta en PHP

Hola @Luishp,

Necesitaría saber si hay en VNWeb alguna función para pasar la salida de una consulta contra una bbdd Oracle que se retorna a la variable [data] del container en esta forma:

array(80)
{ [0]=> array(3) { ["HOSTNAME"]=> string(14) "NOMBRE_HOST_1" ["PUERTO"]=> string(4) "1521" ["SERVICIOS"]=> string(10) "SERVICIO_BASE_1" }
[1]=> array(3) { ["HOSTNAME"]=> string(8) "NOMBRE_HOST_2" ["PUERTO"]=> string(4) "1521" ["SERVICIOS"]=> string(27) "SERVICIO_BASE_2" }
[2]=> array(3) { ["HOSTNAME"]=> string(8) "NOMBRE_HOST_3" ["PUERTO"]=> string(4) "1521" ["SERVICIOS"]=> string(7) "SERVICIO_BASE_3" }
[3]=> array(3) { ["HOSTNAME"]=> string(5) "NOMBRE_HOST_4" ["PUERTO"]=> string(4) "1564" ["SERVICIOS"]=> string(3) "SERVICIO_BASE_4" }
[4]=> array(3) { ["HOSTNAME"]=> string(8) "NOMBRE_HOST_5" ["PUERTO"]=> string(4) "1522" ["SERVICIOS"]=> string(3) "SERVICIO_BASE_5" }
[5]=> array(3) { ["HOSTNAME"]=> string(8) "NOMBRE_HOST_6" ["PUERTO"]=> string(4) "1533" ["SERVICIOS"]=> string(3) "SERVICIO_BASE_6" }
[6]=> array(3) { ["HOSTNAME"]=> string(10) "NOMBRE_HOST_7" ["PUERTO"]=> string(4) "1544" ["SERVICIOS"]=> string(3) "SERVICIO_BASE_7" }
[7]=> array(3) { ["HOSTNAME"]=> string(12) "NOMBRE_HOST_8" ["PUERTO"]=> string(5) "1555" ["SERVICIOS"]=> string(3) "SERVICIO_BASE_8" }
[8]=> array(3) { ["HOSTNAME"]=> string(12) "NOMBRE_HOST_n" ["PUERTO"]=> string(5) "1558" ["SERVICIOS"]=> string(3) "SERVICIO_BASE_n" }
etc...

Necesito pasarla a un modo "legible" donde pueda parsearla y enviarla a una lisbox para obtener algo como esto que envío debajo  (tomando la 1ra linea de la salida de arriba):

{ [0]=> array(3) { ["HOSTNAME"]=> string(14) "NOMBRE_HOST_1" ["PUERTO"]=> string(4) "1521" ["SERVICIOS"]=> string(10) "SERVICIO_BASE_1" }

resultado final:   NOMBRE_HOST_1:1521/SERVICIO_BASE_1

Es para construir el string  de conexión para pasarla después a una variable de VNWeb y enviarla al PHP para conectar a esa cadena y hacer otra consulta.

Saludos y muchas gracias,

Sam

Hola @lesanch, no se si te estoy entendiendo muy bien. ¿Lo que obtienes de la base de datos está en formato JSON? No me queda muy claro. Si es así, es directamente accesible desde VisualNEO Web utilizando la notación adecuada según la estructura del JSON.

Ejemplo:
[miData(0)('HOSTNAME')] o bien [miData(0).HOSTNAME]

Más información aquí:
https://webhelp.visualneo.com/VariableObjects.html

Saludos!

 

Hola @Luishp,

A raíz de tu pregunta estuve buscando y lo que puse arriba es un array propio de PHP, con lo cual lo que hice fue convertir eso con la función var_dump(json_encode($res)) y esto me devuelve una cadena JSON en este formato:

string(5623) "[ {"HOSTNAME":"SASASA1","PUERTO":"1521","SERVICIOS":"SERV1.DOMAIN.COM"},
{"HOSTNAME":"BRAPASA2","PUERTO":"1521","SERVICIOS":"SERV2.DOMAIN.COM"},
{"HOSTNAME":"TNETRAS","PUERTO":"1521","SERVICIOS":"SERV3"},
{"HOSTNAME":"SSAPRE","PUERTO":"1521","SERVICIOS":"SERV4.DOMAIN.COM"},
{"HOSTNAME":"TENUA","PUERTO":"1521","SERVICIOS":"SERV5.DOMAIN.COM"},
{"HOSTNAME":"NEPRA","PUERTO":"1521","SERVICIOS":"SERV6.DOMAIN.COM"},
{"HOSTNAME":"RADIU","PUERTO":"1521","SERVICIOS":"SERV7"},
{"HOSTNAME":"MECUPO","PUERTO":"1521","SERVICIOS":"SERV8.DOMAIN.COM"},

{n.......}

Por lo cual es seguro que recibo una cadena JSON.

Lo que necesito es pasar cada una de esas lineas a un listbox quedando como decía arriba de este modo:

SASASA1:1521/SERV1.DOMAIN.COM

Por lo cual logro tener tres variables independientes (hostname , puerto, servicio) ya sería suficiente para formar el string de conexión.

Saludos y mil gracias,

Sam

@lesanch una vez recibas los datos en VisualNEO Web utliza ConsoleLog para imprimir la variable que los almacena en la Consola. Ejecuta la aplicación en Chrome o Firefox y abre la Consola (F12). Despliega los datos JSON, copialos y pégalos aquí de modo que podamos trabajar con los datos JSON tal y como los recibe VisualNEO Web y de este modo poder ayudarte. Parece sencillo la verdad pero creo que tendras que utilizar ParseStr para separar los diferentes datos.

Saludos.