Ir para conteúdo

POWERED BY:

Arquivado

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

MarcianoRibeiro

inserir array de um foreach no banco

Recommended Posts

Boa Tarde

Li muito antes de fazer estes tópico, mas ainda não consegui resolver o meu problema... vamos ver se consigo com a ajuda de vocês.
Então, eu tenho uma tabela dinâmica para cadastro de cliente, onde cada cliente pode ter mais de um contato, podendo acrescentar as linhas com jquery.

segue o cód da página

<tr>  
       <td><input name="nome[]" type="text" size="20" maxlength="100" /></td>
       <td><input name="cargo[]" type="text" size="20" maxlength="100" /></td>
       <td><input name="telefone[]" type="text" size="20" maxlength="100" /></td>
       <td><input name="email_contato[]" type="text" size="50" maxlength="100" /></td>
       <td><button onclick="RemoveTableRow(this)" type="button">Remover</button></td>
<tr>

Estou recebendo e tentando gravar os dados assim:

foreach($_POST['nome'] as $nome => $nome_contato);
foreach($_POST['cargo'] as $cargo => $cargo_contato);
foreach($_POST['telefone'] as $telefone => $telefone_contato);
foreach($_POST['email_contato'] as $email => $email_contato);

try{

$add2 = $conn->prepare
("INSERT INTO contatos_cliente (nome, cargo, telefone, email_contato, id_cliente) 
VALUES (:nome, :cargo, :telefone, :email_contato, :id_cliente)");

	$add2->bindValue(':nome', $nome_contato, PDO::PARAM_STR);
	$add2->bindValue(':cargo', $cargo_contato, PDO::PARAM_STR);
	$add2->bindValue(':telefone', $telefone_contato, PDO::PARAM_STR);
	$add2->bindValue(':email_contato', $email_contato, PDO::PARAM_STR);
	$add2->bindValue(':id_cliente', $id_cliente, PDO::PARAM_STR);
	
$add2->execute();

	}
	catch (PDOException $i)
	{
		//se tiver erro, exibe
		echo "Erro: " . $i->getMessage();
	}

Porém só está gravando o último dado do array (no caso o último contato),

o que preciso alterar no código ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só grava o último pois todos os seus loops não fazem nada. Então as variáveis ficam com os últimos valores

 

você precisa fazer um loop que pegue todos os valores

Por exemplo:

 

 

for ( $i = 0, $total = count( $_POST['nome'] ); $i < $total; $i++ )
{
    $nome = $_POST['nome'][$i];
    $cargo = $_POST['cargo'][$i];
 
    // aqui faz o INSERT
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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