Gmartha07 0 Denunciar post Postado Agosto 14, 2014 Fala Galera blza??Pessoal me ajuda com isso aqui quem puder, por favor..O que está acontecendo é que seu eu digitar a "Quantidade de Times" maior do que 1, por exemplo 4 times.Vão aparecer 4 campos para eu inserir os nomes, após inserido o PROBLEMA é que apenas está inserindo no BD o último time digitado.Ou seja, de 4 times só está inserindo um.Como eu poderia solucionar isso?? <?php require("config.php"); echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; ?> <?php if(!isset($_POST['qtdTimes'])){ ?> <form action="" method="post"> Quantidade de Times: <input type="text" name="qtdTimes" placeholder="Digite Aqui"/> <input type="submit"> </form> <?php } else { $qtdTimes = addslashes($_POST['qtdTimes']); $i=1; while ($i <= $qtdTimes){ echo "<br> Time: ".$i++."<br> <form name='EnvioJogos' action='' method='POST'> <input type='text' name='times'> <value='a'>"; } echo '<br> <input type="submit">'; } ?> <?php if(isset($_POST['times'])){ extract($_POST); $f['times'] = htmlspecialchars(mysql_real_escape_string($_POST['times'])); $query = "INSERT into times (times) VALUES ('$f[times]')"; $inserir = mysql_query($query) or die ('Nao inserido'.mysql_error().''); } ?> Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 14, 2014 Você precisa trabalhar com array nesse caso: echo "<br> Time: ".$i++."<br> <form name='EnvioJogos' action='' method='POST'> <input type='text' name='times[]'> <value='a'>"; E para inserir: foreach ($_POST['produtos'] AS $key => $value) { $query = "INSERT INTO times (times) VALUES ('$value')"; $inserir = mysql_query($query) or die ('Nao inserido'.mysql_error().''); } Compartilhar este post Link para o post Compartilhar em outros sites
Tadeu Barbosa 18 Denunciar post Postado Agosto 14, 2014 Acho que você precisará da função serialize(); para guardar esse array no BD. // SET $data = serialize(array('Math', 'Language', 'Science')); // return: a:3:{i:0;s:4:"Math";i:1;s:8:"Language";i:2;s:7:"Science";} // GET $data = 'a:3:{i:0;s:4:"Math";i:1;s:8:"Language";i:2;s:7:"Science";}'; // return: array('Math', 'Language', 'Science') Compartilhar este post Link para o post Compartilhar em outros sites
Gmartha07 0 Denunciar post Postado Agosto 14, 2014 Você precisa trabalhar com array nesse caso: echo "<br> Time: ".$i++."<br><form name='EnvioJogos' action='' method='POST'><input type='text' name='times[]'> <value='a'>"; E para inserir: foreach ($_POST['produtos'] AS $key => $value) {$query = "INSERT INTO times (times) VALUES ('$value')";$inserir = mysql_query($query) or die ('Nao inserido'.mysql_error().'');} Fala Allex.. Blza??Primeiramente obrigado pela ajuda na resposta.. Tentei fazer isso que você disse, mas agora ele não cadastra nem o último dado mais.. Tem alguma outra sugestão?? Valeu a todos pela ajuda.. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Agosto 14, 2014 @Gmartha07, como ficou o seu código ? Tinha um erro na sugestão do @allex_carvalho, troque: foreach ($_POST['produtos'] AS $key => $value) {por foreach ($_POST['times'] AS $key => $value) {Apareceu algum erro na tela? qual ? Compartilhar este post Link para o post Compartilhar em outros sites
Gmartha07 0 Denunciar post Postado Agosto 14, 2014 <?php if(!isset($_POST['qtdTimes'])){ ?> <form action="" method="post"> Quantidade de Times: <input type="text" name="qtdTimes" placeholder="Digite Aqui"/> <input type="submit"> </form> <?php } else { $qtdTimes = addslashes($_POST['qtdTimes']); $i=1; while ($i <= $qtdTimes){ echo "<br> Time: ".$i++."<br> <form name='EnvioJogos' action='' method='POST'> <input type='text' name='times' value='a'>"; } foreach ($_POST['times'] AS $key => $value) { $query = "INSERT INTO times (times) VALUES ('$value')"; $inserir = mysql_query($query) or die ('Nao inserido'.mysql_error().''); } echo '<br> <input type="submit">'; } ?> William Bruno Obrigado pela ajuda tb.. O meu código ficou assim.. Ele não insere nada no banco de dados.. A única ação dele é retornar para o formulário que eu digito a "Quantidade de Times", ou seja, ele volta la pra linha 1 do código.. Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 14, 2014 Você não está enviando arrays, faltou [] no name='times': while ($i <= $qtdTimes){ echo "<br> Time: ".$i++."<br> <form name='EnvioJogos' action='' method='POST'> <input type='text' name='times[]' value='a'>"; } Compartilhar este post Link para o post Compartilhar em outros sites
Gmartha07 0 Denunciar post Postado Agosto 14, 2014 Valeu galera que ajudou!!Funcionou agora.. Compartilhar este post Link para o post Compartilhar em outros sites
ivanferrer 5 Denunciar post Postado Agosto 14, 2014 faz assim: no post você coloca assim: <input type="text" name="times[]"> <input type="text" name="times[]"> <input type="text" name="times[]"> e no request, você faz assim: if ( !empty($_POST['times'])){ foreach ($_POST['times'] as $time){ $sql = "INSERT INTO tabela (times) VALUES ('$time');"; $insert = mysql_query($sql); } } Compartilhar este post Link para o post Compartilhar em outros sites