Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 cliente_endereco ' . $fields . ' VALUES ' . $values;
$qur = mysqli_query($cnx, $sql);
var_dump($quer);
tenho um formulario dinamico e gostaria de saber como faço para inserir no banco de dados nesse exemplo.
esse é o resultado que aparece na pagina de retorno :
INSERT INTO cliente_endereco (nome_tipo,cep,logradouro,numero,complemento,bairro,pais,cidade_id,codigo_cidade,nome_cidade,estado) VALUES ('','','','','','','','','','','')
porem como faço para inserir no banco de dados?>
2 horas atrás, Williams Duarte disse:
Pega o value, ao invés de usar foreach, é igual ao primeiro implode.
http://php.net/manual/pt_BR/function.array-values.php
Só valide estes dados antes de inserir no DB!
não entendi, como seria nesse exemplo ? aí é um formulario dinamico que pode ser mais de 1 campo.
O principio é o mesmo, você já fez com array_keys pegando o nome, agora use array_value para pegar os valores.
>
15 minutos atrás, Williams Duarte disse:
O principio é o mesmo, você já fez com array_keys pegando o nome, agora use array_value para pegar os valores.
desculpe sou leigo esse codigo já foi um rapaz daqui do forum que me passou, não sei bem como fazer, só queria prosseguir com o codigo que ele me deu, mas se tem outro jeito melhor de iserir os dados de uma tabela dinamica, pode me dizer ?
ficaria assim ? :
$field = "(" . implode(",", array_keys($_POST['data']['ClientesContato'][0])) . ")";
$field = "(" . implode(",", array_values($_POST['data']['ClientesContato'][0])) . ")";>
18 horas atrás, Williams Duarte disse:
O principio é o mesmo, você já fez com array_keys pegando o nome, agora use array_value para pegar os valores.
eu consegui enserir no banco, porem quando adiciono mais de 1 endereço eles são gravados com id diferente, e a parte do contato quando adiciono mais do que 1 contato não é são nenhum só quando adiciono 1 contato!
tente algo assim:
$contador = count($_post);
for($i=0; $i < $contador; $i++);
{
$field = "(" . implode(",", array_keys($_POST['data']['ClientesContato'][$i)) . ")";
$values = "(" . implode(",", array_values($_POST['data']['ClientesContato'][$i])) . ")";
//$values = substr($values, 0, -1);
$sql = 'INSERT INTO cliente_endereco ' . $fields . ' VALUES ' . $values;
///resto do seu código
$qur = mysqli_query($cnx, $sql);
var_dump($quer);
}
Pega o value, ao invés de usar foreach, é igual ao primeiro implode.
http://php.net/manual/pt_BR/function.array-values.php
Só valide estes dados antes de inserir no DB!