Eu tenho uma tabela no sqlite com 3 campos id,nome e email. Gostaria de gerar o json da mesma pra usar em uma app android.
Como eu posso fazer isso?
obtenha um array dos dados e aplica o jason_encode do php
Um exemplo de exibição em JSON que fiz em uma aplicação Blank bem simples, espero que te ajude:
$sql = “SELECT codigo, descricao, secao, grupo, lojabase FROM cad_mercadorias WHERE lojabase = ‘001’ LIMIT 0, 100”;
sc_select(resultado,$sql);
{
$mercadorias = array();
while (!$resultado->EOF)
{
$mercadorias[] = array('codigo'=> $resultado->fields[0], 'descricao' => utf8_encode($resultado->fields[1]),
'secao' => $resultado->fields[2], 'grupo' => $resultado->fields[3], 'lojabase' => $resultado->fields[4]);
$resultado->MoveNext();
}
$resultado->Close();
echo json_encode($mercadorias);
}
Ta aparecendo um erro.
$check_sql = “SELECT _id,
str_sigla_secao,
str_nome_secao,
telefone1,
telefone2,
str_email,
str_sigla_organizacao,
str_nome_organizacao”
.“FROM secao”;
sc_select(resultado, $check_sql);
{
$telefones = array();
while (!$resultado->EOF)
{
$telefones[] = array('id'=>$resultado->fields[0],
'sigla_secao'=>$resultado->fields[1],
'nome_secao'=>$resultado->fields[2],
'telefone1'=>$resultado->fields[3],
'telefone2'=>$resultado->fields[4],
'email'=>$resultado->fields[5],
'sigla_organizacao'=>$resultado->fields[6],
'nome_organizacao'=>$resultado->fields[7]);
$resultado->MoveNext();
}
$resultado->Close();
echo json_encode($telefones);
}
Erro que aparece ao executar o blank
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
ERRO
Trying to get property of non-object
Fatal error: Call to a member function MoveNext() on a non-object in C:\Program Files (x86)\NetMake\v6\wwwroot\scriptcase\app\ListaTelefonica\json\json.php on line 921
Teu SELECT está errado. Experimente assim:
$check_sql = “SELECT _id,
str_sigla_secao,
str_nome_secao,
telefone1,
telefone2,
str_email,
str_sigla_organizacao,
str_nome_organizacao FROM secao”;
Funcionou o select.
Porem já mudei o charset da aplicacao para utf8 e o banco tambem ta em UTF 8, mais continua mostrando outros caracteres em acentos, cedilha, etc.
2ª seção ta aparecendo assim
“nome_secao”:“2\u00c2\u00aa SE\u00c3\u0087\u00c3\u0083O”,
E tambem tem como o codigo do json aparecer identado dessa maneira, porque tá aparecendo sem identação nenhuma?
Ficar assim o resultado
[
{
“id”:“0”,
“sigla_secao”:“P2”,
“nome_secao”:“2\u00c2\u00aa SE\u00c3\u0087\u00c3\u0083O”,
“telefone1”:“34385643”,
“telefone2”:"",
“email”:null,
“sigla_organizacao”:“12\u00ba TRT”,
“nome_organizacao”:“12\u00ba TRIBUNAL TRABALHO”
}
]
Onde diz: ‘nome_secao’=>$resultado->fields[2], tente: ‘nome_secao’=>utf8_encode($resultado->fields[2]),
Obs.: Se não der certo pode ser problema no seu banco de como vc definiu todo ele.