Ir para conteúdo
clickanapolis

Colocar consulta dentro de json

Recommended Posts

Estou criando um arquivo json dessa maneira:

 

$sql = mysqli_query($con, "SELECT nome, percentual FROM atleticas order by percentual DESC, nome ASC");

while($vetor_ranking = mysqli_fetch_array($sql)) {

$ranking = [
    "atletica" => $vetor_ranking['nome'],
    "percentual" => $vetor_ranking['percentual']   
];

$rankingJson = json_encode($ranking);

echo $rankingJson;

}

o problema que o cliente solicitou que ao inves de criar varios ele precisa todos os cadastros dentro de um json apenas, como eu faria?

 

tipo atletica[0]

atletica[1]

 

não estou sabendo como fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tento fazer como o aplicativo do cliente precisa mais não vai:

 

$ranking = [
    "ranking" => 
	
	while($vetor_ranking = mysqli_fetch_array($sql)) {
	
	[
	"id" => $vetor_ranking['id_atletica'],
    "percentual" => $vetor_ranking['percentual']
	]
	
	} 
	
];

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize a variável $ranking como um array (basta adicionar [] ao lado da variável). Crie e imprima o json fora do laço de repetição (while).

while(/** código **/)
{
   $ranking[] = /** restante do código **/;
}

// criação do json

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
$sql = mysqli_query($con, "SELECT nome, percentual FROM atleticas order by percentual DESC, nome ASC");

//fora do laço para criar array
$ranking = []; 
while($vetor_ranking = mysqli_fetch_array($sql)) {

//indico ranking como array para resultado ficar agrupado
$ranking[] = [
    "atletica" => $vetor_ranking['nome'],
    "percentual" => $vetor_ranking['percentual']   
];

}

//retiro a criação do objeto do looping para gerar um objeto com todos os resultados e não um objeto para cada resultado
$rankingJson = json_encode($ranking);
//imprimo fora do looping o objeto para mostrar o resultado total e não um resultado por objeto.
echo $rankingJson;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora


  • Conteúdo Similar

    • Por Junior Junior
      Olá eu tenho tentado criar uma plantaforma que faça login e registro com php mysqli e ajax porém toda vez q tento fazer login ja com um usuario cadastro no banco de dados ele não funciona aparece que ta dando erro, porém não identifiquei o erro, e o registro também alguém poderia me ajudar a desenvolver?
      meu arquivo valida para login;
       
      meu arquivo validareg.php valida o registro:
      arquivo formulario do registro:
      parte do arquivo de login: 
      e por fim o ajaxlogin que faz a função ajax
       
    • Por manoaj
      Pessoal estou usando o long polling pra me retornar notificacoes em tempo real, esta tudo funcionando normalmente, estou inserindo os dados no db e o codigo me retorna as novas notificacoes, mas se eu der um refresh na pagina ela fica em um loop infinito tentando atualizar e gerando esse erro no meu php MySQL server has gone away.
      Como resolvo e o que siguinifica esse erro dentro desse contexto?
    • Por lucasdab
      Preciso urgente de ajuda, comecei a pouco mais de duas semanas no meu emprego e preciso interpretar o seguinte código:
      <?php error_reporting(E_ERROR); if(isset($argv[1]) && $argv[1] != '')     $txtPath = trim($argv[1]); else     exit("nao foi possivel capturar o txt"); // CAPTURA O ARQUIVO TXT $conteudoArquivo = file($txtPath, FILE_SKIP_EMPTY_LINES + FILE_IGNORE_NEW_LINES); if (trim(substr($conteudoArquivo[0], 0, 3)) == '00;') {// LAYOUT NFE DO BRASIL     $linha00 = explode(";", $conteudoArquivo[0]);     $versaoTxt = $linha00[1];     {// CHAMA O CONVERSOR         if($versaoTxt == "3.10")             require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "layout_nfedobrasil" . DIRECTORY_SEPARATOR . "importaTXTNFe3G.php");         elseif($versaoTxt == "4.00")             require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "layout_nfedobrasil" . DIRECTORY_SEPARATOR . "importaTXTNFe4G.php");         else             exit("Nao foi possivel identificar a versao do TXT-NFE");     }     // INSTANCIA A CLASSE PARA CONVERSAO     $importador = new importaTXTNFe();     $importador->conteudoArquivo = $conteudoArquivo;     $bolRetorno = $importador->processaConteudo();     // EXIBI ERROS NA CONVERSAO SE EXISTIR     $erros = $importador->errosAnalise();     // RETORNA O CONTEUDO DO XML     $xmlConvertido = '<NFe xmlns="http://www.portalfiscal.inf.br/nfe">' .          trim(str_replace('<?xml version="1.0" encoding="UTF-8"?>', '', $importador->retornaXML())) .          '</NFe>'; } else {     $linhaA = $conteudoArquivo[1];     $versaoTxt = substr($linhaA, 2, 4);     if ($versaoTxt == "4.00"){         require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "layout_sefaz" . DIRECTORY_SEPARATOR . "ConvertNFePHP4G.php");         $ConvertNFePHP = new NFe_ConvertNFePHP4G();     }elseif($versaoTxt == "3.10"){         require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "layout_sefaz" . DIRECTORY_SEPARATOR . "ConvertNFePHP3G.php");         $ConvertNFePHP = new NFe_ConvertNFePHP3G();     }     else         exit("Nao foi possivel identificar a versao do TXT-SEFAZ");     $xmlConvertido = str_replace('<?xml version="1.0" encoding="UTF-8"?>', '', $ConvertNFePHP->nfetxt2xml($conteudoArquivo)); } echo $xmlConvertido;  
      para posteriormente converter para C#, tenho noções apenas básicas de PHP, pois é meu primeiro emprego na área

    • Por Soneca_BO
      Bom dia estou com um problema com meu código php,
      estou inserindo dados no mysql, mas quando gravo acentos .. quando vou verificar no banco mySQL os acentos são convertidos para outro formato.
      já troquei a colletion do banco para "general_ci", queria saber como resolver esse problema ?

      segue minha meu arquivo conexão:

       
      <?php $servername = "servername "; $username = "username "; $password = "password "; $dbname = "dbname"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) {     die("Connection failed: " . $conn->connect_error); }else{    //echo "Conectado!<br/>"; } ?>  
      Se alguém conseguir me ajudar agradeço desde já.
    • Por WitchMad
      Olá Gente! Se pudessem me ajudar agradeceria bastante!
      Seguinte: Estou precisando cadastrar um valor do INPUT em dois bancos de dados. Onde eu vi a solução acabou não funcionando. Ainda sou um pouco noob em PHP, então se for algo óbvio perdoai
       
      Aqui o arquivo que processa os dados para enviar:
      <?php session_start(); include_once("conexao-alunos.php"); $matricula = filter_input(INPUT_POST, 'matricula', FILTER_SANITIZE_NUMBER_INT); $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING); $ensino = filter_input(INPUT_POST, 'ensino', FILTER_SANITIZE_STRING); $ano = filter_input(INPUT_POST, 'ano', FILTER_SANITIZE_STRING); $turno = filter_input(INPUT_POST, 'turno', FILTER_SANITIZE_STRING); $nascimento = filter_input(INPUT_POST, 'nascimento', FILTER_SANITIZE_STRING); $situacao = filter_input(INPUT_POST, 'situacao', FILTER_SANITIZE_STRING); $responsavel = filter_input(INPUT_POST, 'responsavel', FILTER_SANITIZE_STRING); $contato = filter_input(INPUT_POST, 'contato', FILTER_SANITIZE_NUMBER_INT); $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); $endereco = filter_input(INPUT_POST, 'endereco', FILTER_SANITIZE_STRING); $cargo = filter_input(INPUT_POST, 'cargo', FILTER_SANITIZE_STRING); $empresa = filter_input(INPUT_POST, 'empresa', FILTER_SANITIZE_STRING); // Aonde eu vi era pra deixar dessa forma na sintaxe "INSERT INTO 'nome da tabela, $nomedobanco'" $result_usuarios = "INSERT INTO 'medio', $dbname (matricula, nome, turno, nascimento, responsavel, contato, email, endereco, cargo, empresa, situacao) VALUES ('$nome', '$turno', '$nascimento', '$responsavel', '$contato', '$email', '$endereco', '$cargo', '$empresa', '$situacao')"; $resultado_usuario = mysqli_query($conn, $result_usuarios); $result_usuarios_tran = "INSERT INTO 'mensalidade', $dbname_tran (matricula) VALUES ('$matricula')"; $resultado_usuario_tran = mysqli_query($conn_tran, $result_usuarios_tran); if (mysqli_insert_id($conn)){ $_SESSION['msg'] = "<p style='color:#00ff2a;'>Usuário Cadastrado com Sucesso</p>"; header("Location: index.php"); } else{ $_SESSION['msg'] = "<p style='color:red;'>Falha ao Cadastrar Usuário</p>"; header("Location: cad_aluno.php"); } ?> E aqui o arquivo de conexão:
      <?php $servidor = "localhost"; $usuario = "root"; $senha = ""; $dbname = "medio"; $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); ?> <?php $dbname_tran = "transacoes"; $conn_tran = mysqli_connect($servidor, $usuario, $senha, $dbname_tran); ?>  
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.