store php log id

Asked

Viewed 102 times

0

Good people, my goal is to store the registration id that was entered in the database

$sql = "insert into pacientes (Nome, idade, dataNascimento, estadoCivil, nacionalidade, naturalidade, morada, telemovel, niss, nif, situacaoEconomica, trabalho, salario, outros, possuiFamilia, familiarProximo, parentesco, moradaFamiliar, contactoFamiliar, inscritoCentroSaude, qual, medicoFamilia, contacto, sns, grupoSanguineo, antecendentesClinicos, informacoesAcompanhamento) values ('$nome', '$idade', '$dataNascimento', '$estadoCivil', '$nacionalidade', '$naturalidade', '$morada', '$telemovel', '$niss', '$nif', '$situacaoEconomica', '$trabalho', '$salario', '$outros', '$possuiFamilia', '$familiarProximo', '$parentesco', '$moradaFamiliar', '$contactoFamiliar', '$inseridoCentroSaude', '$qual', '$medicoFamilia', '$contacto', '$sns', '$grupoSanguineo', '$antecendentesClinicos', '$informacoesAcompanhamento')";

    $resultado = mysqli_query($ligacao,$sql);
    $numero = mysqli_affected_rows($ligacao);
    if($numero==1)
    {
        $codigo = mysqli_insert_id($ligacao);
        echo "<span style='position:absolute; margin-top:600px; margin-left:400px; color:green;'>Inserido com sucesso. </span>";

}

Here I can store the id of this record through mysqli_insert_id-$codigo = mysqli_insert_id($ligacao);

My problem is that I then wanted to store the log id but of another query and can no longer use the same way because my goal would be to insert in another table the log id of a query and the log id of another query

    $result = count($_POST["agregado"]);
    $agregado=$_POST["agregado"];
    $t=0;
    $m = 0;

    for($i=0; $i<$result; $i=$i+4)
    {

   $p=$i+1;
   $e=$p+1;
   $b = $e+1;

    $sql_1="insert into agregado (nome, parentesco, idade, bi) value('$agregado[$i]', '$agregado[$p]', '$agregado[$e]', '$agregado[$b]')";
    $resultado_1 = mysqli_query($ligacao, $sql_1);
    $sql_2 = "insert into utenteagregado (id_agregado, id_utente)  values ('1', '$codigo')";
    $resultado_2 = mysqli_query($ligacao, $sql_2);
}

    mysqli_close($ligacao);
}

Summarizing in this line $sql_2 = "insert into utenteagregado (id_agregado, id_utente) values ('1', '$codigo')"; where it has the number 1 I want to insert the id of this query $sql_1="insert into agregado (nome, parentesco, idade, bi) value('$agregado[$i]', '$agregado[$p]', '$agregado[$e]', '$agregado[$b]')";

1 answer

0


Uses the last_insert_id function()

In your case:

$sql_1="insert into agregado (nome, parentesco, idade, bi) value('$agregado[$i]', '$agregado[$p]', '$agregado[$e]', '$agregado[$b]')";
$resultado_1 = mysqli_query($ligacao, $sql_1);
$sql_2 = "insert into utenteagregado (id_agregado, id_utente)  values (last_insert_id(), '$codigo')";
$resultado_2 = mysqli_query($ligacao, $sql_2);

An important comment on official documentation:

The ID that was generated is maintained in the server on a per-Connection Basis. This Means that the value returned by the Function to a Given client is the first AUTO_INCREMENT value generated for Most recent statement affecting an AUTO_INCREMENT column by that client. This value cannot be affected by other clients, Even if they generate AUTO_INCREMENT values of their Own. This behavior that each client can Retrieve its Own ID without Concern for the Activity of other clients, and without the need for Locks or transactions.

and

LAST_INSERT_ID() Returns only Automatically generated AUTO_INCREMENT values. If you store an Explicit value other than NULL or 0, it does not affect the value returned by LAST_INSERT_ID().

  • 1

    Thanks, I think it’s working

Browser other questions tagged

You are not signed in. Login or sign up in order to post.