Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jonathan Abas

loop errado.

Recommended Posts

boa noite galera consegui resolver varios problemas com meu API sendo que o loop do meu while tem colocado itens em outros clientes

o correto seria cliente 1->itens 1 cliente->2 itens->2

ele á fazendo cliente->1 itens->1 clientes->2itens->1,2,3(ou seja ele tá repitindo os itens do cliente 1 e já puxando itens de um cliente que o while nem mostrou ainda)

 

preciso de uma ajudinha só falta isso ;-;

header('Content-Type: application/json');
	$sql = mysqli_query($conn, $Search_List) or die (mysql_error());
	 while($campos = mysqli_fetch_array($sql)){
	   $arquivos['listapresente'][] = array(
	   'id_lista'=>$campos[0],
	   'nome_lista'=>utf8_encode($campos[1]),
	   'data_valid_lista'=>$campos[2],
	   'data_cad_lista'=>$campos[3],
	   'data_eve_lista'=>$campos[4],
	   'status_lista'=>$campos[5],
	   'lista_id_cliente'=>$campos[6],
	   'categoria_id_cat_lista'=>$campos[7],
	   'id_cliente_parc_lista'=>$campos[8],
	   'lista_frase'=>utf8_encode($campos[9]),
	   'latitude'=>utf8_encode($campos[10]),
	   'longitude'=>utf8_encode($campos[11]),
	   'logradouro'=>utf8_encode($campos[12]),
	   'numero'=>$campos[13],
	   'bairro'=>utf8_encode($campos[14]),
	   'cep'=>utf8_encode($campos[15]),
	   'cidade'=>utf8_encode($campos[16]),
	   'estado'=>utf8_encode($campos[17]),
	   'forma_retirada'=>$campos[18],
	   'listapresente_id'=>utf8_encode($campos[19]),
	   'imagem_lista'=>$campos[20]);
	   $Search_List_Itens = "SELECT * FROM `sysm_itens_lista` WHERE `listapresente_id`= '".utf8_encode($campos[19])."'";
	   $sql2 = mysqli_query($conn, $Search_List_Itens) or die (mysql_error());
	   $Search_Itens = mysqli_num_rows($sql2);
		if($Search_Itens > 0){
		     while($campoItens = mysqli_fetch_array($sql2)){
			   $Itens[]=array(
			   'qtde_item_lista'=>$campoItens[0],
			   'listas_id_lista'=>$campoItens[1],
			   'item_id_produto'=>$campoItens[2],
			   'id_item_lista'=>$campoItens[3],
			   'listapresente_id'=>utf8_encode($campoItens[4])
			   );
		   }
		$i = ((count($arquivos['listapresente'])) - 1);
		$arquivos['listapresente'][$i]['listapresenteproduto'] = $Itens;

	   }
$vetor = '"data":';
echo "{".$vetor."".json_encode($arquivos)."}";		   
}

 

segue erro:

https://imgur.com/QeMz64e

 

em vez de ele ficar só no cliente que tem o mesmo id que ele , ele aparece em outros clientes com outros ids

Compartilhar este post


Link para o post
Compartilhar em outros sites

até colocando 

$Search_List_Itens = "SELECT * FROM `sysm_itens_lista` WHERE `listas_id_lista`= '".$campos[0]."' and `listapresente_id`= '".utf8_encode($campos[19])."'";

ele continua retornando em outros clientes

 

@EDIT consequi resolver o loop repetindo os clientes troquei  

                       $vetor = '"data":';
                    echo "{".$vetor."".json_encode($arquivos)."}";

de lugar desci um }

agora só falta o retorno de itens repetidos

Compartilhar este post


Link para o post
Compartilhar em outros sites

são 2h? são duas horas da manhã! eu li 80 paginas de como corrigir esse while? eu li!

mais foi kkkk

							$dados = array();
							while($campoItens = mysqli_fetch_array($sql4, MYSQLI_ASSOC)){
								$dados[] = array(
										// Itens que estão dentro da lista de presente deste cliente.
									   "listas_id_lista" => $campoItens['listas_id_lista'], 
									   "item_id_produto" => $campoItens['item_id_produto'], 
									   "id_item_lista" => $campoItens['id_item_lista'], 
									   "listapresente_id" => $campoItens['listapresente_id'],  
									   "qtde_item_lista" => $campoItens['qtde_item_lista']);				
						}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por clovis.sardinha
      Estou em um impasse pois sei pouco de javascript. Estou fazendo um autocomplete com CI4 e Javascript.
      Consigo gerar, através do controllers/model do CI4 um arquivo em json, mas não consigo retorná-lo para o javascript para poder mostrar as opções para consulta. 
      O console.log mostra que estou obtendo o  json() { [native code] }.
      Segue os dois arquivos para ver se alguém me ajuda.
      //arquivo cidade.js async function carregar_cidade(valor) { if (valor.length >= 3) { //console.log("Pesquisar:" + valor); const dados = fetch('Testes/?cidade='+valor, { method: "get", headers: { "Content-Type": "application/json", "X-Requested-With": "XMLHttpRequest" } }); const resposta = (await dados).json; console.log(resposta); var html = "<ul class='list-group position-fixed'>"; html += "<li class='list-group-item'>" + resposta['cid_nome'] + "</li>"; html += "</ul>"; } } <?php //arquivo Testes.php namespace App\Controllers; use App\Models\CidadeModel; /** NÃO MANDAR PARA O SERVIDOR - APENAS TESTES DE FUNÇÕES E OUTROS ELEMENTOS DO CI4 */ class Testes extends BaseController{ protected $tbCidades; public function __construct(){ $this->tbCidades = new CidadeModel(); } public function index(){ $request = \Config\Services::request(); $client = \Config\Services::curlrequest(); $cidades=[]; if($get=$request->getGet()){ $cities=$get['cidade']; $cidadeFiltrada=$this->tbCidades->getCidByName($cities); $cidades= json_encode($cidadeFiltrada); //dd($cidades); } echo view('Testes/testes'); } public function salvar(){ $request = \Config\Services::request(); if($post=$request->getPost()){ dd($post); } } } <!doctype html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <title>Autocomplete</title> </head> <body> <div class="container"> <h1 class="mt-4 mb-4">Formulário</h1> <form class="row g-3"> <div class="col-12"> <label for="cidade" class="form-label">Cidade</label> <input type="text" name="cidade" class="form-control" id="cidade" placeholder="Pesquisar cidade" onkeyup="carregar_cidade(this.value)"> </div> <span ></span> </form> </div> <!-- Optional JavaScript; choose one of the two! --> <!-- Option 1: Bootstrap Bundle with Popper --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> <script src="assets/js/cidade.js"></script> </body> </html>
    • Por FabianoSouza
      Olá pessoal.
      Eu já utilizo o FOR JSON PATH para retornar o o resultado de uma consulta com JSON. Isso eu já sei fazer.
       
      O que preciso é criar uma função que receba um SELECT como parâmetro e retorne o resultado desse SELECT já formatado como JSON.
      Estou tentando isso, mas sem sucesso.
       
      A function dbo.fn_retornaJsonPath :
      (@String NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) AS BEGIN BEGIN IF @String <> NULL SET @String = (SELECT @String AS jsonPath FOR JSON PATH) END BEGIN IF @String IS NULL SET @String = '[]' END RETURN @String END Forma de executar:
      SET @sql = 'SELECT ' SET @sql = @sql + ' dbo.fn_retornaJsonPath ((SELECT TT.tema FROM dbo.tabela AS TT WHERE TT.cd = CTT.id)) AS ''temas'' ' SET @sql = @sql + ' FROM dbo.minhaTab AS CTT ' EXEC(@sql) Mas não está rolando....
    • Por vicente386
      Ola. Tenho uma tabela no 3 campos que sao "LIVRO, POS, PAGINA" ao qual a logica e a seguinte: cada livro tem 100 paginas cada pagina tem 30 posiçoes tenho 8,364 registros pra inserir chegando a 100 paginas com 30 posiçoes cada passa para o livro 2 e como fazer o update na tabela inserindo nos campos LIVRO = 1, POS de 0 a 30 e PAGINA 1 para cada 30 registros logos apos pagina 2 ?
      estou tentando fazer assim:
      <?php > ini_set('max_execution_time', 2000); $pdo = new > DO(DB_SERVER.":host=".DB_HOST.";dbname=".DB_BASE,DB_USER,DB_PASSWORD); > $sql = $pdo->prepare("SELECT count(*) FROM tabela2018"); > $sql->execute(); > $livro = 1; > foreach($sql as $obj){ > $variavel = $obj[0]; > ceil((float)$variavel/100); > $qtdlaco = ceil((float)$variavel/100); > for ($id = 1; $id <= 35; $id++) { > for($L=1; $L < $qtdlaco; $L++) { > for ($P = 0; $P <= 30; $P++) { > $sql = $pdo->prepare("UPDATE tabela2018 SET LIVRO = :LIVRO, POS = :POS, PAGINA = :PAGINA WHERE idtabela2018 = $id"); > $sql->bindValue(':LIVRO', $livro); > $sql->bindValue(':POS', $P); > $sql->bindValue(':PAGINA', $L); > $sql->execute(); > } > } > } >} ?> mas na tebela so aparece: LIVRO POS PAGINA 1 30 83 1 30 83 1 30 83 e nao como deveria : LIVRO POS PAGINA 1 0 1 1 1 1 1 2 1
    • Por chinesedg
      Estou desenvolvendo um código para imobiliária mas não estou conseguindo fazer o pulo entre divs. Usando este código abaixo descaracteriza o layout da página pois o loop pega somente 1 <div class="events-grids"></div> e tem que ser dois sendo que no primeiro pega ids 1 2 3 e o segundo ids 456 e assim por diante. Na imagem penso vocês entenderem o que estou pedindo. Fui claro?
      Código:
      <div class="events">
              <div class="container">
              <?php
                  $conexao = bla bla bla
                      $banco = bla bla bla;
                  if (!$conexao) {
                      die("Connection failed: " . mysqli_connect_error());
                  }
                  $query = "SELECT * FROM imoveis";
                      $result = mysqli_query($conexao, $query);
                      if($result){
                          while($row = mysqli_fetch_array($result)){
                              $ref = $row["ref"];
                              .
                              .
      ?>
                  <div class="events-grids">
                      <div class="col-md-4 events-grid">
                          <div class="events-grid1 hvr-sweep-to-top">
                              <a href="imovel.php"><img src="images/6.jpg" alt=" " class="img-responsive" /></a>
                              <h4><a href="imovel.php"><?php echo "$bairro"; ?></a></h4>
                              <ul>
                                  <li><a href="imovel.php"><span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span><?php echo "$cidade"; ?></a></li>
                              </ul>
                              <p>Quartos: <?php echo "$quartos"; ?> | Suites: <?php echo "$suites"; ?> | Banheiros: <?php echo "$banheiros"; ?> | Vagas: <?php echo "$vagas"; ?> | Condomínio: <?php echo "$condominio"; ?></p>
                              <h4><a href="imovel.php"><?php echo "$preco"; ?></a></h4>
                          </div>
                      </div>
                      
                  <?php
                      }
              }
              ?>
                  </div>            
              </div>
          </div>

    • Por PresleyMenezes
      Olá pessoal, gostaria de saber como copiar o conteúdo de um campo json com muitos pais e filhos e colar em outro campo de pais e filhos do mesmo arquivo json?
       
      agradeço a ajuda de vocês.
      em anexo o arquivo json e o codigo que estou tentando fazer

       

       

       
       
       
       

       

       
×

Informação importante

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