Boa tarde,
alguém sabe como fazer para trazer dados da tabela q ta salvo em json para o scriptcase.
ex:
codigo_midia = {“codigo_midia”:“11”},
codigo_artista = {“codigo_artista_banda”:“10”},
nome_artista = {“nome_artista_banda”:“02”},
Boa tarde,
alguém sabe como fazer para trazer dados da tabela q ta salvo em json para o scriptcase.
ex:
codigo_midia = {“codigo_midia”:“11”},
codigo_artista = {“codigo_artista_banda”:“10”},
nome_artista = {“nome_artista_banda”:“02”},
Exemplo de uso JSON com PHP.
//isso pode ser um resultado do banco.
$string_json = '{"nome":"Eliezer", "sobrenome":"Almeida", "sexo":"macho"}';
$dados = json_decode($string_json);
{nome} = $dados["nome"];
{sobrenome} = $dados["sobrenome"];
{sexo} = $dados["sexo"];
Agora, uma dica.
Acho que não é muito viável ficar guardando informações no banco em JSON não, imagina o trabalho para se alterar apenas um DADO da string, e também imagine um filtro. Não sei seu cenário, mais da uma analisada melhor para gravar isso em vários campos.
Abraço.
Almeida,
na verdade estar sendo guardado no banco de duas formas , só outra coisa na app consulta como faço, pensei assim,
criar um campo download , no evento onrecorde faço {download} = {json_midia}, crio uma função explode.
$download = explode (",", [‘nome_midia’]);
print_r($download);
algo assim será q funciona?
O banco quem fez foi meu chefe e realmente ta complicado de trabalhar com ele.
Hum…, não entendi oque quer fazer.
Segue um exemplo usando JSON obtido do banco de dados e criando um campo para donwload no onRecord da grid.
Vamos levar em conta que o campo JSON está na mesma grid carregada na tela. Vou detalhe da tabela exemplo:
Tabela Exemplo:
Tabela: midia;
Campos: id, info1, info2, json_midia.
Conteudo do json_midia: ‘{“descricao”: “Album de Ouro de José”, “codigo”: 15, “arquivo”: “…/_lib/midias/midi01.rar”}’;
Então temos uma grid em cima dessa tabela, o campo json_midia colocamos escondido, pois contem as informações da mídia.
Criamos um campo virtual chamado “donwload”.
Vamos usar as FN do php, json_encode() e json_decode(), a primeira converde um Array para JSON a segunda faz o inverso.
No evento onRecord fazemos assim:
$midia = json_decode({json_midia}); //usamos o campo retornado pela grid, poderia fazer um lookup e trazer um dataset e usa-lo.
//com a função json_decode() transformamos a STRING JSON em uma matriz.
//agora criaremos um link no campo "download";
//usaremos o array obtido pela função json_decode();
{download} = "<a class='scGridFieldOddLink' href='" . $midia["arquivo"] . " target='_blank' '>" . $midia["descricao"] . "</a>";
//aqui crimaos um link usando HTML e o array MIDIA obtido a partir do JSON.
Muito bem, esse é um exemplo simples de como usar uma string JSON para fazer um link de download do álbum.
Acho que não é isso que deseja, mais vinculei suas palavras, “download” e “midia” e presumi isso. rsrsrs
Creio que com isso, dê para ter uma ideia é fazer algo, se não ficou claro, deixe mais detalhes.
Tentei dessa forma acredito q seja esse o caminho,
$json_str = {json_midia};
$obj = json_decode($json_str);
{nome_midia} = $obj->nome_midia;
mas dá um erro : Trying to get property of non-object
Apartir de uma versão do PHP , não me lembro qual que ao usar json_decode() já vem em formato objeto, anterior a essa tem que passar um segundo parâmetro, tipo:
$json = json_decode(stringjson, false); // o segundo parâmetro faz retornar um Objeto, se não informado(padrao true) retorna um Array, como expliquei para ti acima.
Resolvi dessa forma:
$json_str = {json_midia};
$obj = json_decode($json_str, true);
{nome_midia} = $obj[0][“descricao”];
{artista} = $obj[0][“nome_artista_banda”];
{album} = $obj[0][“nome_album”];