Perform Insert for a defined amount (PHP)

1

Hello,

Personal, I want an action to be performed over a certain amount of times defined through a form. For example:

The user chooses 5, then the code exempts 5 records in the database. Since each record must be incremental, for example, if you chose 5, then it will record in the field in each of the registers, sequentially, 1,2,3,4,5.

I thought I'd start like this:

$valor_escolhido = "5";

foreach($valor_escolhido as $vlr_esc){
    $insert="INSERT INTO TABELA (campo1,campo2,campo3) VALUES ('$campo1','$campo2', '$valor_escolhido') ";
}

How would it look like ...?

    
asked by anonymous 15.12.2017 / 17:09

2 answers

1

If you will insert records at once, sequentially, you can do this:

$valor = array(); // aqui criamos o array com os valore escolhidos
for($x = 1; $x <= $valor_escolhido; $x++){
    $valor[] = $x ; // aqui inserimos os valores
}

$insert="INSERT INTO TABELA (campo1,campo2,campo3) VALUES "; // inicia a string fora do 'foreach' 
// abaixo, no foreach você irá concatenar os valores
foreach($valor as $vlr_esc){
   $insert.= "('$campo1','$campo2', '$vlr_esc'),"; // repare que tem uma virgula no final
}
$insert = substr($insert, 0, -1); // aqui você apaga a ultima vírgula

So it's easier:

$insert="INSERT INTO TABELA (campo1,campo2,campo3) VALUES "; // inicia a string fora do 'foreach' 

// abaixo, no for você irá concatenar os valores
$valor_escolhido = 5;
for($x = 1; $x <= $valor_escolhido; $x++){
    $insert.= "('$campo1','$campo2', '$x'),"; // repare que tem uma virgula no final
}
$insert = substr($insert, 0, -1); // aqui você apaga a ultima vírgula
    
15.12.2017 / 18:37
1

I have been able to do so:

$nome="Eu";
$quantidade_escolhida="6";
$a="1";

while($a <= $quantidade_escolhida){

    $insert = "INSERT INTO tabela(id,nome) VALUES ('$a','$nome')";
    $rs_insert = mysql_query($insert);  

    $a++;
}//endwhile;
    
15.12.2017 / 19:12