Ir para conteúdo
romario@seg

gravar um array no banco de dados metohd post

Recommended Posts

olá, estou com um formulario feito com colunas fixas e uma parte dinamica(um botao adiciona um conjunto de colunas) , como faria para enviar os dados dos campos dinamicos no banco de dados já que eles serão variais, 

 

 

$tipoendereco = $_POST['data']['ClientesEndereco'][0]['nome_tipo']; 


$cep = $_POST['data']['ClientesEndereco'][0]['cep'];  
$logradouro = $_POST['data']['ClientesEndereco'][0]['logradouro']; 

$numeroendereco = $_POST['data']['ClientesEndereco'][0]['numero'];  
$complemento = $_POST['data']['ClientesEndereco'][0]['complemento']; 
$bairro = $_POST['data']['ClientesEndereco'][0]['bairro'];   
$codcidade = $_POST['data']['ClientesEndereco'][0]['codigo_cidade'];   
$nomecidade = $_POST['data']['ClientesEndereco'][0]['nome_cidade'];   
$estadocidade = $_POST['data']['ClientesEndereco'][0]['estado']; 

 

existe um botao que duplica essa parte do formulaio quantas vezes a pessoa quiser .... porem só fica registrado os dados preenchidos no primeiro formulario, o segundo ja vem assim:

 

$cep = $_POST['data']['ClientesEndereco'][1]['cep'];  
$logradouro = $_POST['data']['ClientesEndereco'][1]['logradouro']; 

$numeroendereco = $_POST['data']['ClientesEndereco'][1]['numero'];  
$complemento = $_POST['data']['ClientesEndereco'][1]['complemento']; 
$bairro = $_POST['data']['ClientesEndereco'][1]['bairro'];   
$codcidade = $_POST['data']['ClientesEndereco'][1]['codigo_cidade'];   
$nomecidade = $_POST['data']['ClientesEndereco'][1]['nome_cidade'];   
$estadocidade = $_POST['data']['ClientesEndereco'][1]['estado']; 

 

como faço para gravar todos os formulario para pegar de acordo com a quantidade desejada por pessoa ?

agradeço desde já

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@romario@seg, beleza!

Se entendi o problema, isso deve resolver:
 

if (isset($_POST['data']['ClientesEndereco'][0])) {
        
  $values = '';    
  $fields = "(" . implode(",", array_keys($_POST['data']['ClientesEndereco'][0])) . ")";
  
  foreach ($_POST['data']['ClientesEndereco'] as $endereco) {
    $values .= "('" .implode("','", $endereco) . "'),";
  }
  
  $values = substr($values, 0, -1);
  $sql = 'INSERT INTO SUATABELA ' . $fields . ' VALUES ' . $values;

  /*
    Agora basta pegar essa variavel $sql e dar o insert com o seu PDO, mysqli ou o que estiver usando
  */
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
23 minutos atrás, EdCesar disse:

@romario@seg, beleza!

Se entendi o problema, isso deve resolver:
 


if (isset($_POST['data']['ClientesEndereco'][0])) {
        
  $values = '';    
  $fields = "(" . implode(",", array_keys($_POST['data']['ClientesEndereco'][0])) . ")";
  
  foreach ($_POST['data']['ClientesEndereco'] as $endereco) {
    $values .= "('" .implode("','", $endereco) . "'),";
  }
  
  $values = substr($values, 0, -1);
  $sql = 'INSERT INTO SUATABELA ' . $fields . ' VALUES ' . $values;

  /*
    Agora basta pegar essa variavel $sql e dar o insert com o seu PDO, mysqli ou o que estiver usando
  */
}

 

na pagina que recebe não deu nenhum erro, mas como faço para imprimir na tela os dados preenchidos para verificar os dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, romario@seg disse:

na pagina que recebe não deu nenhum erro, mas como faço para imprimir na tela os dados preenchidos para verificar os dados?


Normal, só dar um:

echo $sql;

Após:

$sql = 'INSERT INTO SUATABELA ' . $fields . ' VALUES ' . $values;

Não se esqueça de troca SUATABELA pelo nome correto da sua tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, EdCesar disse:


Normal, só dar um:


echo $sql;

Após:


$sql = 'INSERT INTO SUATABELA ' . $fields . ' VALUES ' . $values;

Não se esqueça de troca SUATABELA pelo nome correto da sua tabela

INSERT INTO cliente (nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado) VALUES ('','','','','','','','','','','')

esses sao os names que estão no formulario se observar no primeiro exmplo 

"nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado" e os values vem em branco.

 

foi isso que apareceu quando atualizei a pagina, desculpa sou leigo, mas agradeço a grande ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, romario@seg disse:

foi isso que apareceu quando atualizei a pagina, desculpa sou leigo, mas agradeço a grande ajuda!


Ótimo, esta funcionando, aparentemente você só não preencheu os campos do formulário.
Se mais duvidas aparecer, pesquise por enviar dados do formulário para o PHP e salvar no banco de dados, caso tenha dificuldades, poste o seu código para auxiliarmos melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, EdCesar disse:


Ótimo, esta funcionando, aparentemente você só não preencheu os campos do formulário.
Se mais duvidas aparecer, pesquise por enviar dados do formulário para o PHP e salvar no banco de dados, caso tenha dificuldades, poste o seu código para auxiliarmos melhor.

não estou conseguindo inserir no banco de dados, criei uma tabela para cada resultado, mas onde eu faço o endereçamento para aparecer nas colunas?

 

eu costumo fazer desse jeito quando tem a tabela fixa, mas não estou conseguindo nesse jeito que me passou? como faço ?

$nome = $_POST['data  ']['ClientesEnderecos'][0]['nome'];

$tipo = $_POST['data  ']['ClientesEnderecos'][0]['cep'];

$sql = INSERT INTO endereco_cliente (`nome_tipo`,`cep`) VALUES ($nome, $tipo);

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 2017-5-20 at 20:01, EdCesar disse:


Ótimo, esta funcionando, aparentemente você só não preencheu os campos do formulário.
Se mais duvidas aparecer, pesquise por enviar dados do formulário para o PHP e salvar no banco de dados, caso tenha dificuldades, poste o seu código para auxiliarmos melhor.

não esta indo para a minha tabela do banco de dados , estou com o projeto parado, pode me ajudar ?

tem algum email ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 minutos atrás, EdCesar disse:

Coloque o seu código e os erros que estão dando.

Informe também o que você já tentou fazer para resolver o problema e não deu certo.

 essa é a pagina que vem do formulario para enviar para o banco de dados ... 

<?php

include 'conexao.php';

 

if (isset($_POST['data']['ClientesEndereco'][0]))
if (isset($_POST['data']['ClientesContato'][0])) {
        
  $values = ''; 
  $fields = "(" . implode(",", array_keys($_POST['data']['ClientesEndereco'][0])) . ")";


  $value = '';
  $field  = "(" . implode(",", array_keys($_POST['data']['ClientesContato'][0])) . ")";
  
  foreach ($_POST['data']['ClientesEndereco'] as $endereco) {
    $values .= "('" .implode("','", $endereco) . "'),";

  }


  foreach ($_POST['data']['ClientesContato'] as $contato) {
    $value .= "('" .implode("','", $contato) . "'),";

  }


  
  $values = substr($values, 0, -1);
  $sql = 'INSERT INTO cliente_endereco ' . $fields  . ' VALUES ' . $values;

  $value = substr($value, 0, -1);
  $sq  = 'INSERT INTO cliente_contato  ' . $field. ' VALUES ' .$value;


  $quer = mysqli_query($cnx,$sql);
    var_dump($quer);


echo $sql ;
  
}

//header ("Location:/1-login/home/clientes.php");
       
?>

 

no meu banco de dados criei duas tabelas, uma com nome cliente_endereco e outra com contato_endereco

 

na tabela cliente endereco criei as colunas 
nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado.

 

mas não esta enviando, esse é o resultado que aparece na pagina retorno .

 

 

INSERT INTO cliente_endereco (nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado) VALUES ('','','','','','','','','','','')

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 20/05/2017 at 20:01, EdCesar disse:

Ótimo, esta funcionando, aparentemente você só não preencheu os campos do formulário.
Se mais duvidas aparecer, pesquise por enviar dados do formulário para o PHP e salvar no banco de dados, caso tenha dificuldades, poste o seu código para auxiliarmos melhor.


A impressão que da, é que você esta tentando obter os dados sem submeter o formulário, se não existem dados em $_POST['data']['ClientesEndereco']  ficara em branco mesmo, então reitero a sugestão acima que já tinha lhe dado.

Que testes você esta fazendo, já deu um var_dump em $_POST['data']['ClientesEndereco'] ?


 

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, EdCesar disse:


A impressão que da, é que você esta tentando obter os dados sem submeter o formulário, se não existem dados em $_POST['data']['ClientesEndereco']  ficara em branco mesmo, então reitero a sugestão acima que já tinha lhe dado.

Que testes você esta fazendo, já deu um var_dump em $_POST['data']['ClientesEndereco'] ?


 

testei, porem a inserção que conheço e que estou fazendo para meu formulario fixo esta dando certo, esta enviando para o banco de dados, esse é os dados do formulario fixo:
 

<?php
include 'conexao.php';

$tipo = $_POST['data']['Cliente']['tipo_pessoa'];
$situacao = $_POST['data']['Cliente']['ativo'];
$nome = $_POST['data']['Cliente']['nome'];
$email = $_POST['data']['Cliente']['email'];
$cpf = $_POST ['data']['Cliente']['pf_cpf'];
$rg = $_POST ['data']['Cliente']['pf_rg'];
$dtnascimento = $_POST ['data']['Cliente']['pf_data_nascimento'];

$cnpj = $_POST['data']['Cliente']['pj_cnpj'];
$rzsocial = $_POST ['data']['Cliente']['pj_razao_social'];
$ie = $_POST ['data']['Cliente']['pj_inscricao_estadual'];
$ieisent = $_POST['data']['Cliente']['pj_isento_ins_est'];
$pjcontribuinte = $_POST['data']['Cliente']['pj_tipo_contribuinte'];
$imunicipal = $_POST['data']['Cliente']['pj_inscricao_municipal'];
$isuframa = $_POST['data']['Cliente']['pj_inscricao_suframa'];
$respon = $_POST['data']['Cliente']['pj_responsavel'];
$telcomercial = $_POST['data']['Cliente']['telefone'];
$telcelular = $_POST['data']['Cliente']['celular'];
$fax =$_POST['data']['Cliente']['fax'];
$site = $_POST['data']['Cliente']['site'];

 

$sql = "INSERT INTO  `cliente`( `tipocliente`, `situacao`, `nome`, `email`, `cpf`, `rg`, `nascimento`, `cnpj`, `razao`, `ie`, `ieisento`,`contribuinte`, `inscmunicipal`, `inscsuframa`, `responsavel`, `telefone`, `celular`, `fax`, `site` ) 
   
   VALUES ('$tipo', '$situacao', '$nome','$email','$cpf','$rg','$dtnascimento','$cnpj','$rzsocial','$ie','$ieisent','$pjcontribuinte','$imunicipal','$isuframa','$respon','$telcomercial','$telcelular','fax','$site');";
       $qur = mysqli_query($cnx, $sql);
        var_dump($qur);

 

a inserção desta forma esta dando certo, mais para a parte do formulario dinamico  que é o endereço e o contato que pode ser adicionado mais campos dinamicamente não está ...

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 minutos atrás, EdCesar disse:


A impressão que da, é que você esta tentando obter os dados sem submeter o formulário, se não existem dados em $_POST['data']['ClientesEndereco']  ficara em branco mesmo, então reitero a sugestão acima que já tinha lhe dado.

Que testes você esta fazendo, já deu um var_dump em $_POST['data']['ClientesEndereco'] ?


 

estou preenchendo o formulario, mas não todo porque da trabalho ficar preenchendo toda hora, preencho 1 ou dois campos até dar certo.

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 darkskull10
      Numa cidade as crianças costumam brincar com um jogo (de dois jogadores) onde:
      um jogador A define uma sequência de 10 letras usando: G, R e B (exemplo: G – G – G – R – B – R – B – B – B – R)
      um jogador B pode ler a sequência quantas vezes quiser
      o jogador B também pode dizer uma das letras e obter em quais posições a letra dada se encontra na sequência
      o jogador B também pode dar uma posição e saber qual letra ocupa a posição na sequência
      para finalizar, o jogador B deve dizer a sequência de letras, obtendo um ponto para cada acerto.
       
      Só consegui pensar nisso por enquanto.
       
      //identificar que letra ocupa esta posição na sequência:
      do{
      scanf(“%d”,&Posicao);
      Posicao=Posicao-1;}
      while ((Posicao<0)||(Posicao>9));
      printf(“%c”,Sequencia[Posicao]);
       
      //exibir sequencia
      for (Cont=0; Cont<=9; Cont++)
      printf(“%c”,Sequencia[Cont]);
       
      //exibir posições
      for (Cont=0; Cont<=9; Cont++)
      printf(“%d%c”,Cont+1,Sequencia[Cont]);
    • Por paulo.e.monteiro2015
      Boa noite,
       
      Possuo o seguinte array
      Array ( [0] => Array ( [0] => 564 [IdPergunta] => 564 [1] => 66 [IdQuiz] => 66 [2] => A EMS é líder no mercado farmacêutico há quantos anos? [DescricaoPergunta] => A EMS é líder no mercado farmacêutico há quantos anos? [3] => 1 [NumeroPergunta] => 1 ) [1] => Array ( [0] => 565 [IdPergunta] => 565 [1] => 66 [IdQuiz] => 66 [2] => A cada 100 medicamentos vendidos no Brasil 13 são de qual laboratório? [DescricaoPergunta] => A cada 100 medicamentos vendidos no Brasil 13 são de qual laboratório? [3] => 2 [NumeroPergunta] => 2 ) [2] => Array ( [0] => 566 [IdPergunta] => 566 [1] => 66 [IdQuiz] => 66 [2] => Qual medicamento controlado e lançamento dos Genéricos EMS é indicado para alívio de dores e possui formato de fácil deglutição? [DescricaoPergunta] => Qual medicamento controlado e lançamento dos Genéricos EMS é indicado para alívio de dores e possui formato de fácil deglutição? [3] => 3 [NumeroPergunta] => 3 ) [3] => Array ( [0] => 567 [IdPergunta] => 567 [1] => 66 [IdQuiz] => 66 [2] => Os Genéricos EMS possuem o maior portfólio do Brasil, com 195 moléculas, que atendem 96% das classes terapêuticas. Qual o número total de apresentações? [DescricaoPergunta] => Os Genéricos EMS possuem o maior portfólio do Brasil, com 195 moléculas, que atendem 96% das classes terapêuticas. Qual o número total de apresentações? [3] => 4 [NumeroPergunta] => 4 ) [4] => Array ( [0] => 568 [IdPergunta] => 568 [1] => 66 [IdQuiz] => 66 [2] => A EMS possui quantos anos de história? [DescricaoPergunta] => A EMS possui quantos anos de história? [3] => 5 [NumeroPergunta] => 5 ) [5] => Array ( [0] => 569 [IdPergunta] => 569 [1] => 66 [IdQuiz] => 66 [2] => Qual lançamento Genéricos EMS é o primeiro genérico do mercado indicado para o tratamento do Transtorno do Déficit de Atenção e Hiperatividade? [DescricaoPergunta] => Qual lançamento Genéricos EMS é o primeiro genérico do mercado indicado para o tratamento do Transtorno do Déficit de Atenção e Hiperatividade? [3] => 6 [NumeroPergunta] => 6 ) ) Preciso criar uma navegação item a item deste, para que possa dar a opção do usuário responder ao Quiz.
      Preciso muito desta ajuda pois tenho muita urgência em resolver isso. É só isso que falta para terminar o Quiz.
       
      Att.
    • Por Andersonografia
      Gostaria de agradecer o topico do Tonga (topic/436039-resolvido refresh/) pois me esclareceu a criar um método prático para certificar se o form vem do botão ou do F5.
      Vou esclarecer também que só tenho essa necessidade quando o primeiro form do documento é um input, porque na maioria dos meus casos sempre é um search.  
       
      No Value do botão eu coloco o time:
      <button type="submit" name="carga" class="button" value="<?PHP echo $time;?>"> Coloco a condição se estiver setado e se for diferente da sessão:
      if(isset($_POST['carga'])) { $compara = ($_POST['carga']); if($compara != $_SESSION['compara']) { E depois do insert, ainda dentro da condição eu gravo a variável na sessão:
      $_SESSION['compara'] = $compara; Obrigado mais uma vez ao Tonga e ao Forum. Se alguém souber de um método mais prático, por gentileza será muito útil divulgar!!!!
    • Por markhosbh
      Prezados, boa tarde!
       
      Estou tendo dificuldades para transformar um retorno WebService em uma tabela HTML.
      A minha dificuldade está na seguinte condição, se fosse cabeçalho fixo bastava eu utilizar o foreach para percorrer o array e estava ok.
      Porém, a quantidade de campos do array de retorno não é fixo, aí que se encontra minha dificuldade, como fazer para ler e imprimir o cabeçalho e o conteúdo da tabela, sendo que essas informações podem variar.
       
      Exemplo:
       
      Requisição: 
      SELECT A1_COD, A1_NOME, TIPO FROM USUARIO  
      Retorno:
      [ {"A1_COD":"0093","A1_NOME":"JOAO","TIPO":"TITULAR"}, {"A1_COD":"0016","A1_NOME":"ABELARDO","TIPO":"TITULAR"}, {"A1_COD":"8586","A1_NOME":"ADRIANA","TIPO":"TITULAR"} ]  
      Array:
      Array ( [0] => Array ( [A1_COD] => 0093 [A1_NOME] => JOAO [TIPO] => TITULAR ) [1] => Array ( [A1_COD] => 0016 [A1_NOME] => ABELARDO [TIPO] => TITULAR ) [2] => Array ( [A1_COD] => 8586 [A1_NOME] => ADRIANA [TIPO] => TITULAR ) ) Quero que seja impresso em uma tabela html
       
      A1_COD A1_NOME TIPO 0093 JOAO TITULAR 0016 ABELARDO TITULAR 8586 ADRIANA TITULAR  
      Mas como informado o cabeçalho poderia variar, sendo a requisição por exemplo ser:
       
      SELECT * FROM USUARIO  
      Desde então agradeço.
    • Por lendadomato
      Pessoal,
       
      tenho uma aplicação que funcionava há muitos anos sem problemas, mas percebi que o meu servidor atualizou o PHP 5
      para PHP 7 sem me comunicar. Tenho uma função que contém alguns arrays e essa função parou de funcionar após a atualização.
      Gostaria saber se esse conjunto de arrays funciona dessa forma no PHP 7:
      $msg = array ( 'title' => 'Novo pedido', 'body' => $endereco, 'sound' => 'default' ); $fields = array ( 'to' => $tokenempresa, 'notification' => $msg ); $headers = array ( 'Authorization: key=' . API_ACCESS_KEY, 'Content-Type: application/json' ); Não entendo muito de PHP e não sei se esse código está correto.
       
×

Informação importante

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