Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

Compartilhar este post


Link para o post
Compartilhar em outros 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().'');
}

Compartilhar este post


Link para o post
Compartilhar em outros 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')

Compartilhar este post


Link para o post
Compartilhar em outros 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..

 

Compartilhar este post


Link para o post
Compartilhar em outros 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 ?

Compartilhar este post


Link para o post
Compartilhar em outros 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..

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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'>";
}

Compartilhar este post


Link para o post
Compartilhar em outros 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);

       }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.