Insert 0 Denunciar post Postado Março 18, 2008 Pessoal tenho um form com 3 grupos de input assim: <input name='nome[]' type='text' /> <input name='email[]' type='text' /> <input name='telefone[]' type='text' /> Eles estao como array pois criei um JS para inserir mais campos no na pagina dinamicamente... entao poderia ser varios campos destes acimas na mesma pagina. O que precisa fazer é inserir eles no banco de dados por grupo tipo como um foreach: INSERT INTO cadastro (nome,email,telefone) VALUES ('$nome','$email','$telefone'); Como fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 18, 2008 exemplo simples $field = 'nome'; $f2 = 'email'; $f3 = 'telefone'; while( list( $k, $v ) = each( $_POST[$field] ) ){ $v1 = $v; $v2 = $_POST[$f2][$k]; $v3 = $_POST[$f3][$k]; $sql[] = "INSERT INTO cadastro (nome,email,telefone) VALUES ('$v1','$v2','$v3');"; } Compartilhar este post Link para o post Compartilhar em outros sites
Insert 0 Denunciar post Postado Março 18, 2008 Oi testei e funcionou em parte é isso mesmo que eu precisao. Mas veja o v2 e v3 estao ficando como arrays ainda e nao separados como o v1 entao quando vai inserir no banco de dados fica como 0 pois é um campo float e coloquei um echo la apra ver o que estava ocorrendo ai ele mostra array e print_r mostra Array ( [0] => 0,50 [1] => 0,50 ) Compartilhar este post Link para o post Compartilhar em outros sites
programador php 0 Denunciar post Postado Março 18, 2008 gostei da solucao, mas eu ainda prefiro da minha forma passo todos os campos e crio arrays independentes depois uso array_shift para gravar cada um no seu devido lugar!!! abraço Compartilhar este post Link para o post Compartilhar em outros sites
Insert 0 Denunciar post Postado Março 18, 2008 programador php poderia me passar o codigo de seu ex.? não sao muito bom com arrays e preciso muito desta solução. Compartilhar este post Link para o post Compartilhar em outros sites
Insert 0 Denunciar post Postado Março 18, 2008 Tva vendo o site br.php.net e achei alguns funções sobre array e fiquei testando ate que montei isso: $total_itens = count( $_POST["nome"] ); for ( ; $i < $total_itens; ++$i ) { $array_nome= array_slice($_POST["nome"],$i,$i); $array_email= array_slice($_POST["email"],$i,$i); $array_telefone = array_slice($_POST["telefone"],$i,$i); echo $array_nome[0]."<br>".$array_email[0]."<br>".$array_telefone[0]."<br>"; } Aparentemente funcionou, nao sei se é o jeito certo de fazer e nao sei se vai continuar funcionando em diversas situações, se alguem puder dar a opnião sobre o codigo ficarei grato. Compartilhar este post Link para o post Compartilhar em outros sites
Insert 0 Denunciar post Postado Março 28, 2008 hinom cheguei em outra situação que acabei nao conseguindo fazer. No exemploque passei funcionou meio que por uma gambiarra mas depois na hora de tratar estes dados esta sendo muito complicado e da forma certa a se fazer que nao consegui seria mais facil. Vou expor a situação novamente: Tenho uma página, nela coloquei um javascipt onde eu insiro campos e tableas dinamicamente. Inicialmente ao clicar num botao é criado uma tabela como neste exemplo: <table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="85">Nome</td> <td width="215"><input type="text" name="nome[]" /></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email[]" /></td> </tr> <tr> <td>Telefone</td> <td><input type="text" name="fone[]" /></td> </tr> </table> Até ai consegui fazer com o codigo que tinha passado e dito que tinha funcionado. Só que para ficar mais legal o sistema adicionei ao javascript a opção de incluir na tabela criada mais campos de email e telefone, isso infinito, quem for usar podera aidiconar quantos campos quizer por ex.: <table width="300" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="85">Nome</td> <td width="215"><input type="text" name="nome[]" /></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email[]" /></td> </tr> <tr> <td>Telefone</td> <td><input type="text" name="fone[]" /></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email[]" /></td> </tr> <tr> <td>Telefone</td> <td><input type="text" name="fone[]" /></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email[]" /></td> </tr> <tr> <td>Telefone</td> <td><input type="text" name="fone[]" /></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email[]" /></td> </tr> <tr> <td>Telefone</td> <td><input type="text" name="fone[]" /></td> </tr> </table> Certo ate ai tudo bem, agora vamos ao banco de dados, tenho 2 tabelas uma para os itens e outras para o sub-itens digamos assim. nos itens iria o nome e nos subitens os emails e telefones. Preciso que ao submeter o formulario o sistema peque o valor do campo nome e insira na tabela item e os emails e telefones na tabela sub-itens entendeu? Lembrando que os emails e telefones poderao ser varios ou podera ser apenas um campo de cada(1 email, 1 telefone) e TAMBEM que podera haver mais tabelas ou seja depois de inserir os nome e os emails, telefone ele devera partir para o proximo nome e emails e telefones. Sera que tendeu? Como poderia fazer algo do tipo? Acho que vai dar um trabalhao :( Compartilhar este post Link para o post Compartilhar em outros sites
Insert 0 Denunciar post Postado Março 28, 2008 Alguem pode me auxiliar, preciso muito concluir isso. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 29, 2008 utilize o mesmo script que mostrei.. Compartilhar este post Link para o post Compartilhar em outros sites
Insert 0 Denunciar post Postado Março 29, 2008 Mas eu nao consegui usar ele, e como vou fazer para ele percorrer todos os campos de email e telefones? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 29, 2008 ?? teste.php <form action=teste.php method=post> <input type=hidden name=act value=1> <br><input name='nome[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <br><input name='nome[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <br><input name='nome[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <input value='send' type='submit' /> </form> <?php if( !isset( $_POST['act'] ) ){ echo '<hr>'; $f1= 'nome'; $f2 = 'email'; $f3 = 'telefone'; while( list( $k, $v ) = each( $_POST[$f1] ) ){ $v1 = $v; // name $v2 = $_POST[$f2][$k]; // email $v3 = $_POST[$f3][$k]; // tel $sql[$k] = "INSERT INTO cadastro (nome,email,telefone) VALUES ('$v1','$v2','$v1');"; echo '<br />'; echo $sql[$k]; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Insert 0 Denunciar post Postado Março 29, 2008 certo e como seria neste caso? <form action=teste.php method=post> <input type=hidden name=act value=1> <br><input name='nome[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <br><input name='nome[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <br><input name='nome[]' type='text' value='' /> <br><input name='email[]' type='text' value='' /> <br><input name='telefone[]' type='text' value='' /> <input value='send' type='submit' /> </form> Porque como disse pode ser que para um nome existam varios campos de email e telefone. Compartilhar este post Link para o post Compartilhar em outros sites
Insert 0 Denunciar post Postado Março 29, 2008 Testei com a situação que te passei e olha como fica: INSERT INTO cadastro (nome,email,telefone) VALUES ('Nome1','Email1','Fone1'); INSERT INTO cadastro (nome,email,telefone) VALUES ('Nome 2','Email1a','Fone1a'); INSERT INTO cadastro (nome,email,telefone) VALUES ('Nome 3','Email2','Fone2'); <form action=campos.php method=post> <input type=hidden name=act value=1> <br>Nome:<input name='nome[]' type='text' value='' /> <br>E-mail:<input name='email[]' type='text' value='' /> <br>Fone:<input name='telefone[]' type='text' value='' /> <br>E-mail:<input name='email[]' type='text' value='' /> <br>Fone:<input name='telefone[]' type='text' value='' /> <br>Nome:<input name='nome[]' type='text' value='' /> <br>E-mail:<input name='email[]' type='text' value='' /> <br>Fone:<input name='telefone[]' type='text' value='' /> <br>Nome:<input name='nome[]' type='text' value='' /> <br>E-mail:<input name='email[]' type='text' value='' /> <br>Fone:<input name='telefone[]' type='text' value='' /> <input value='send' type='submit' /> </form> <?php if( $_POST['act'] ){ echo '<br>'; $f1= 'nome'; $f2 = 'email'; $f3 = 'telefone'; while( list( $k, $v ) = each( $_POST[$f1] ) ){ $v1 = $v; // name $v2 = $_POST[$f2][$k]; // email $v3 = $_POST[$f3][$k]; // tel $sql[$k] = "INSERT INTO cadastro (nome,email,telefone) VALUES ('$v1','$v2','$v3');"; echo '<br />'; echo $sql[$k]; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 30, 2008 Insert, agora a conversa é outra... de qualquer modo pode aproveitar o mesmo exemplo que te enviei. utilize raciocínio lógico para adaptar o script Compartilhar este post Link para o post Compartilhar em outros sites