Ir para conteúdo

Arquivado

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

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

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

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