Jump to content

Archived

This topic is now archived and is closed to further replies.

Gmartha07

Incluir no Banco de Dados

Recommended Posts

 

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().'');
}
?>

Share this post


Link to post
Share on other sites

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().'');
}

Share this post


Link to post
Share on other sites

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')

Share this post


Link to post
Share on other sites

 

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..

 

Share this post


Link to post
Share on other sites

@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 ?

Share this post


Link to post
Share on other sites

<?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..

 

 

Share this post


Link to post
Share on other sites

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'>";
}

Share this post


Link to post
Share on other sites

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);

       }
}

 

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.