Collate Last Ida Returned by Insert to Bank [duplicate]

1

In this Script below I make a loop where inside it I insert insert in the bank. at the end of each insert it returns the ID of the row recorded in the bank variable piece ($ sql-> insert_id.) so far everything OK

if (isset($_POST['nome'])) {

foreach ($_POST['nome'] as $key => $value) {    
echo 'nome='.$nome = mysql_real_escape_string($value);  // data da saida
echo 'id='.$id_produtos2 = mysql_real_escape_string($_POST['id_produtos'][$key]); 
echo 'valor='.$valor = mysql_real_escape_string($_POST['valor'][$key]);

$bd = new MySQLiConnection();                                                                                                           
$sql = $bd->prepare("INSERT INTOcotacao(chave,id_transfer,id_empresa,para2,tipo,status) VALUES (?,?,?,?,?,?)");   // Atribui valores às variáveis da consulta
$sql->bind_param('isssss', $chave,$id_transfer,$id_empresa,$subcli,$off,$status,); 
if($sql->execute()){
print 'ID da linha gravado : ' .$sql->insert_id .'<br />';
echo $id_retornado = $sql->insert_id; 
}else{
die('Error : ('. $bd->errno .') '. $bd->error);
}
$sql->close();
  • My problem is ... in a loop of 3, in each insert, returning a new id how do I record them in a variable, all the ids that returned me

      Segue a logica
      3x Loop{
    
      Insert 
      retorno id 1 ...
    
     }
    
      $todos_ids_retornados = "1,2,3" ; // Isso que eu quero fazer e não sei como
    
asked by anonymous 15.08.2017 / 05:29

1 answer

1

Within the loop repeat, save the id's to an array using the array_push .

if (isset($_POST['nome'])) {

    $cotacao_id = []; //adicione esta linha
    foreach ($_POST['nome'] as $key => $value) {

        if ($sql->execute()) {
            array_push($cotacao_id, $sql->insert_id); //adicione esta linha
        } else {
            die('Error : (' . $bd->errno . ') ' . $bd->error);
        }
        $sql->close();
    }
}

Then just go through the array $cotacao_id with another foreach .

foreach ($cotacao_id as $id) {
    //sua logica aqui
}
    
15.08.2017 / 13:29