gremio10 14 Denunciar post Postado Julho 30, 2010 Galera , tenho 6 campos. Tipo : Valor - Nome - Email - Dia - Mes - Ano e são 10 campos iguais no mesmo , apenas o Valor é fixo ... fiz assim Podem ver que so fiz com dois por enquanto por que qndo ele insere as 10 vezes o nome e o email vai um por um . $valor = $_POST["valor"]; foreach($_POST["nome"] as $nome){ foreach($_POST["email"] as $email){ $insere = mysql_query("INSERT INTO news (nome,email,valor) VALUES ('$nome','$email','$valor')"); } } Ajudem-me por favooor Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Julho 30, 2010 Utilize for(), assim você pode fazer com várias variáveis ao mesmo tempo. Exemplo: $_POST = array( 'valor' => array( 'valor1-valor', 'valor2-valor', 'valor3-valor', 'valor4-valor', 'valor5-valor', 'valor6-valor', ), 'nome' => array( 'valor1-nome', 'valor2-nome', 'valor3-nome', 'valor4-nome', 'valor5-nome', 'valor6-nome', ) ); $size = min( count( $_POST[ 'valor' ] ), count( $_POST[ 'nome' ] ) ); $format = 'INSERT INTO `news` (`nome`, `valor`) VALUES (\'%s\', \'%s\')'; for( $i = 0; $i < $size; ++$i ) { $insere = mysql_query( sprintf( $format, $_POST[ 'nome' ][ $i ], $_POST[ 'valor' ][ $i ] ) ); } Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Julho 30, 2010 $_POST = array( 'valor' => array( 'valor1-valor', 'valor2-valor', 'valor3-valor', 'valor4-valor', 'valor5-valor', 'valor6-valor', ), 'nome' => array( 'valor1-nome', 'valor2-nome', 'valor3-nome', 'valor4-nome', 'valor5-nome', 'valor6-nome', ) ); neste array eu terei que dar valores ? ou ele vai receber o valor da form ? abrçs Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Julho 30, 2010 Você pode receber do form sem problemas. Eu criei ele manualmente só para exemplificar pra ti. Compartilhar este post Link para o post Compartilhar em outros sites
EuToComProblema! 1 Denunciar post Postado Julho 30, 2010 você tb pode fazer assim: foreach($_POST as $k => $v){ echo $k." = ".$v; } Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Julho 30, 2010 Mas no caso do array exemplificado acima EuToComProblema!, o resultado seria esse: valor = Arraynome = Array Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Julho 30, 2010 Tipo assim , meu form é assim <table width="613" border="0" cellspacing="1" cellpadding="0" style="color:#FFF; font-family:Verdana, Geneva, sans-serif;font-size:10px"> <tr> <td width="199">Nome : <input type="text" name="nome[]" /></td> <td width="201">E-mail : <input type="text" name="email[]" /></td> <td width="213"><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td>Nome : <input type="text" name="nome[]" /></td> <td>E-mail : <input type="text" name="email[]" /></td> <td><input type="text" name="dia[]" maxlength="2" size="2" />/<input type="text" name="mes[]" maxlength="2" size="2" />/<input type="text" name="ano[]" maxlength="4" size="4" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td colspan="3" align="center"><input type="submit" value="Enviar"></td> </tr> </table> Não sei se me entenderam , sao dados aond o nome , email e a data(digamos) é de uma pessoa , mas são dez campos de cada , que seria dez inserções diferentes Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Julho 30, 2010 Então ta certo gremio10, pode mandar bala que ta legal Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Julho 30, 2010 André , eu fiz assim , nao sei se esta certo <?php include_once("admin/inc/conex.php"); $_POST = array( 'email[]' => array( 'valor1-email','valor2-email', 'valor3-email', 'valor4-email','valor5-email', 'valor6-email', 'valor7-email','valor8-email','valor9-email','valor10-email', ), 'nome[]' => array( 'valor1-nome','valor2-nome', 'valor3-nome', 'valor4-nome','valor5-nome', 'valor6-nome', 'valor7-nome','valor8-nome','valor9-nome','valor10-nome', ), 'valor[]' => array( 'valor1-valor','valor2-valor', 'valor3-valor', 'valor4-valor','valor5-valor', 'valor6-valor', 'valor7-valor','valor8-valor','valor9-valor','valor10-valor', ), 'dia[]' => array( 'valor1-dia','valor2-dia', 'valor3-dia', 'valor4-dia','valor5-dia', 'valor6-dia', 'valor7-dia','valor8-dia','valor9-dia','valor10-dia', ), 'mes[]' => array( 'valor1-mes','valor2-mes', 'valor3-mes', 'valor4-mes','valor5-mes', 'valor6-mes', 'valor7-mes','valor8-mes','valor9-mes','valor10-mes', ), 'ano[]' => array( 'valor1-ano','valor2-ano', 'valor3-ano', 'valor4-ano','valor5-ano', 'valor6-ano', 'valor7-ano','valor8-ano','valor9-ano','valor10-ano', ) ); /* ==> Linha 36 ==> */ $size = min( count( $_POST[ 'email' ] ), count( $_POST[ 'nome' ] , count( $_POST[ 'valor' ] ), count( $_POST[ 'dia' ] ,count( $_POST[ 'mes' ] ), count( $_POST[ 'ano' ] ) ); $format = 'INSERT INTO news (nome,email,valor,dia,mes,ano) VALUES (\'%s\', \'%s\',\'%s\', \'%s\',\'%s\', \'%s\')'; for( $i = 0; $i < $size; ++$i ) { $insere = mysql_query( sprintf( $format, $_POST[ 'nome' ][ $i ], $_POST[ 'email' ][ $i ], $_POST[ 'valor' ][ $i ], $_POST[ 'dia' ][ $i ], $_POST[ 'mes' ][ $i ], $_POST[ 'ano' ][ $i ] ) ) or die (mysql_error()); } ?> e ele acusa um erro Parse error: syntax error, unexpected ';' on line 36 Obrigado Desculpe , achei o erro , agora ele apenas nao insere , o que causava o erro era falta de ')'; o que pode ser que esta acontecendo André ? Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Julho 30, 2010 Cara consegui , Obrigado pela ajuda , vou postar o codigo , caso mais alguem precise <?php/*$_POST = array( 'email[]' => array( 'valor1-email','valor2-email', 'valor3-email', 'valor4-email','valor5-email', 'valor6-email', 'valor7-email','valor8-email','valor9-email','valor10-email', ), 'nome[]' => array( 'valor1-nome','valor2-nome', 'valor3-nome', 'valor4-nome','valor5-nome', 'valor6-nome', 'valor7-nome','valor8-nome','valor9-nome','valor10-nome', ), 'valor[]' => array( 'valor1-valor','valor2-valor', 'valor3-valor', 'valor4-valor','valor5-valor', 'valor6-valor', 'valor7-valor','valor8-valor','valor9-valor','valor10-valor', ), 'dia[]' => array( 'valor1-dia','valor2-dia', 'valor3-dia', 'valor4-dia','valor5-dia', 'valor6-dia', 'valor7-dia','valor8-dia','valor9-dia','valor10-dia', ), 'mes[]' => array( 'valor1-mes','valor2-mes', 'valor3-mes', 'valor4-mes','valor5-mes', 'valor6-mes', 'valor7-mes','valor8-mes','valor9-mes','valor10-mes', ), 'ano[]' => array( 'valor1-ano','valor2-ano', 'valor3-ano', 'valor4-ano','valor5-ano', 'valor6-ano', 'valor7-ano','valor8-ano','valor9-ano','valor10-ano', ));*/$size = min( count( $_POST[ 'email' ] ), count( $_POST[ 'nome' ] ) );$format = 'INSERT INTO news (nome,email,valor,dia,mes,ano) VALUES ('%s', '%s','%s', '%s','%s', '%s')';for( $i = 0; $i < $size; ++$i ) { $insere = mysql_query( sprintf( $format, $_POST[ 'nome' ][ $i ], $_POST[ 'email' ][ $i ], $_POST[ 'valor' ], $_POST[ 'dia' ][ $i ], $_POST[ 'mes' ][ $i ], $_POST[ 'ano' ][ $i ] ) ) or die (mysql_error());}?>Sem querer encomodar mais , mas como que eu faço para saber quais estão vazios ? Compartilhar este post Link para o post Compartilhar em outros sites
nuque 0 Denunciar post Postado Julho 30, 2010 Sem querer encomodar mais , mas como que eu faço para saber quais estão vazios ? Quando tu faz o for para inserção no banco, antes de executar a consulta faz um if para verificar se o campo != "". Se for != "" é por que foi preenchido, daí executa a consulta; senão não faz nada. Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Julho 30, 2010 Você pode fazer uma verificação antes de inserir os dados, utilizando empty(). Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Julho 30, 2010 Você pode fazer uma verificação antes de inserir os dados, utilizando empty(). eu fiz isso aqui ó... for( $i = 0; $i < $size; ++$i ) { if (empty($_POST['nome'][$i])){ $a = $i; $a--; }else{ $a = $i; $a++; } } echo $a; Mas se funciona ele so retira um ou dois , e qndo deixo todos os campos em branco , entao dos 10 ele insere 8 estando todos em branco.... HELPPPP Compartilhar este post Link para o post Compartilhar em outros sites